목록분류 전체보기 (303)
군침이 싹 도는 코딩
class RecipeListResource(Resource) : # API를 처리하는 함수 개발 # HTTP Method 를 보고 똑같이 만들어준다 # jwt 토큰이 필수라는 뜻 : 토큰이 없으면 이 API는 실행이 안된다 @jwt_required() def post(self): # 1. 클라이언트가 보내준 데이터를 받아준다 data = request.get_json() # 1-1 헤더에 JWT 토큰이 있으면, 토큰 정보를 받아준다 user_id = get_jwt_identity() # print(data) # 2. 이 레시피 정보를 DB에 저장해야한다 try : ### 1. DB에 연결 connection = get_connection() ### 2. 쿼리문 만들기 query = '''insert i..
from datetime import datetime from flask import Flask, request from flask_restful import Resource from mysql.connector import Error from mysql_connection import get_connection from email_validator import validate_email, EmailNotValidError from utils import hash_password from flask_jwt_extended import create_access_token class UserRegisterResource(Resource) : def post(self) : # {"username": "홍길동"..
pip install flask-jwt-extended # JWT 설치 코드이며 아래 3개의 라이브러리를 사용 가능하다 - create_access_token() : jwt 생성 - @jwt_required(optiontal = True / False) : False 시 무조건 토큰 필요함, True 시 상관 없다는 뜻 권한을 줄때 주로 사용 - get_jwt_identity() : 클라이언트의 header 부분에 있는 jwt를 복호화한다. class Config : JWT_SECRET_KEY = '본인의 KEY' JWT_ACCESS_TOKEN_EXPIRES = True PROPAGATE_EXCEPTIONS = True # 프로젝트에 config 파일에 넣어준다 JWT_SECRET_KEY : 암호화에 필..
# 포스트맨을 열어 편집할 곳에 점 세개를 누른 뒤 Add request 를 눌러 API를 만들 수 있다 원하는 제목을 써주고 메소드를 선택 후 URL을 적고 바디에 써줄 내용이 있다면 써주면 된다 메소드가 DEL 나 GET일 경우에는 바디를 작성하면 안된다
from flask import Flask from flask_restful import Api from config import Config from resources.recipe import RecipeListResource, RecipePublishResource, RecipeResource from resources.user import UserRegisterResource app = Flask(__name__) app.config.from_object(Config) api = Api(app) #------------ 환경변수 세팅 api.add_resource(RecipeListResource, '/recipes') api.add_resource(RecipeResource, '/recipes/'..
def delete(self, recipe_id) : # -------- 함수 만들기 try : connection = get_connection() query = '''delete from recipe where id = %s;''' # -------- 커넥션을 불러오고 삭제를 위한 쿼리문 작성 record = (recipe_id,) # -------- 쿼리문의 값을 변수로 대체해준것을 레코드 변수에 저장 cursor = connection.cursor() cursor.execute(query,record) connection.commit() # -------- 커서를 불러와 쿼리문과 대체문을 실행 후 커넥션 커밋을 통해 서버에 저장 cursor.close() connection.close() # --..
def put(self, recipe_id) : # ----------- 함수를 만든다 data = request.get_json() # ----------- 포스트맨에서 제이슨을 받아온다 try : connection = get_connection() # ----------- 커넥션을 만든다 query = '''update recipe set name = %s , description = %s , num_of_servings = %s , cook_time = %s , directions = %s where id = %s; ''' # ---------- 업데이트를 위한 쿼리문을 만들고 값을 변수로 치환 record = ( data['name'], data['description'], data['num_o..
import mysql.connector def get_connection() : connection = mysql.connector.connect( host = '호스트이름', database = 'DB이름', user = 'USER명', password = '비밀번호', ) return connection try : # 데이터 select # 1. DB에 연결 connection = get_connection() # 2. 쿼리문 만들기 query = '''select * from mysql_table;''' # 3. 커서를 가져온다. # select의 경우 dictionary = True로 설정한다. cursor = connection.cursor(dictionary = True) # 4. 쿼리문을 ..