목록Python/Flask (21)
군침이 싹 도는 코딩
# 작업하는 콜렉션에 삼점버튼을 누른 후 View documentation 을 누른다 # 해당 API에 대한 파라미터 설명이나 코맨트를 남긴 뒤 Publish 를 눌러준다 # 열린 창을 밑으로 스크롤해서 Publish를 누른다 # URL을 눌러 확인한다 # 완료된 모습
class NaverSearchResource(Resource) : def get(self): # 클라이언트가 보내는 데이터를 받아온다 keyword = request.args.get('keyword') limit = request.args.get('limit') # 네이버 API를 호출 ### Restful Open API를 호출할때 사용하는 라이브러리 => requests data = {'query':keyword,'display':limit} headers = {'X-Naver-Client-Id':Config.NAVER_CLIENT_ID,'X-Naver-Client-Secret':Config.NAVER_CLIENT_SECRET} response = requests.get('https://openap..
from flask import Flask from flask_jwt_extended import JWTManager from flask_restful import Api from config import Config app = Flask(__name__) # 환경변수 세팅 app.config.from_object(Config) # JWT 매니저 초기화 jwt = JWTManager(app) api = Api(app) # 경로와 리소스(API코드)를 연결한다 if __name__ == '__main__' : app.run()
# 사진과 글을 동시에 DB에 저장하는 API를 만들어보자 조건은 사진과 글 모두를 꼭 올려야하며 사진이 아닌 파일은 올릴수없게 만든다 메소드는 데이터를 바디에 보내야하므로 POST를 써주고 사진과 글은 form-data로 받아오게 설계한다 class PostingResource(Resource) : def post(self) : # 사진과 내용은 필수항목이다 if 'photo' not in request.files or 'content' not in request.form : return {'error':'데이터를 정확히 보내세요'}, 400 # 클라이언트로부터 데이터 받아온다 # form-data # photo : file # content : text file = request.files['phot..
# 객체 탐지 API는 GET 메소드로 만들고 쿼리스트링으로 S3에 저장되어있는 이미지 파일 이름을 받아온다 class ObjectDetectionResource(Resource) : # S3에 저장되어있는 이미지를 객체 탐지하는 API def get(self): # 클라이언트로부터 파일명을 받아온다 filename= request.args.get('filename') # 위의 파일은 이미 S3에 있는 상황 # 따라서 aws의 rekognition 인공지능 서비스를 이용해서 object detection을 한다 # 리코그니션 서비스를 이용할 수 있는지 IAM 의 유저권한을 확인하고 설정해준다 client = boto3.client('rekognition', 'ap-northeast-2', aws_acce..
# 이미지를 담을 버킷을 S3에서 하나 만든다 # API 를 설계해준다 이미지를 보내는거기때문에 메소드는 POST로하고 url을 정해준다 그리고 바디부분에 form-data로 체크하고 키값에 photo라고 쓴뒤 옆을보면 text와 file이 있는데 file을 눌러주고 벨류에 보낼 사진을 넣는다 from flask import Flask, request from flask_restful import Resource from mysql.connector import Error from mysql_connection import get_connection from flask_jwt_extended import jwt_required from flask_jwt_extended import get_jwt_iden..
class MovieRecommendRealTimeResource(Resource) : @jwt_required() def get(self) : # 리얼타임 영화 추천 user_id = get_jwt_identity() count = request.args.get('count') count = int(count) try : connection = get_connection() query = '''select m.title, r.user_id, r.rating from movie m left join rating r on m.id = r.movie_id;''' cursor = connection.cursor(dictionary=True) cursor.execute(query) result_list = cu..
class MovieRecommendResource(Resource) : @jwt_required() def get(self) : # 영화 추천 # 1. 클라이언트로부터 데이터를 받아온다 user_id = get_jwt_identity() # 쿼리스트링으로 받아온 데이터는 모두 문자열로 받아온다 count = request.args.get('count') count = int(count) # 2. 추천을 위한 상관계수 데이터프레임을 읽어온다 movie_correlations = pd.read_csv('data/movie_correlations.csv', index_col= 'title') # 3. 이 유저의 별점 정보를 가져온다 try : connection = get_connection() query ..