회원 가입

이런 형식으로 해서 유저한테 회원가입을 받을것이다.
but, 컬럼 이름은 영어로 작성할것이다.
Mysql 테이블

vsc코드
# app.py 파일
#인폴트 부분
from resources.user import UserRegisterResource
#작업 부분
app = Flask(__name__)
# 환경변수 셋팅
app.config.from_object(Config)
# JWT 토큰 라이브러리 만들기
app.config["JWT_SECRET_KEY"] = "super-secret"
jwt = JWTManager(app)
api = Api(app)
api.add_resource(UserRegisterResource, '/users/register')
# user.py 파일
#인폴트 부분
from http import HTTPStatus
from os import access
from flask import request
from flask_jwt_extended import create_access_token, get_jwt, jwt_required
from flask_restful import Resource
from mysql.connector.errors import Error
from mysql_connection import get_connection
import mysql.connector
from email_validator import validate_email, EmailNotValidError
from utils import check_password, hash_password
#작업 부분
class UserRegisterResource(Resource) :
# 회원 가입
def post(self):
#1. 클라이언트로부터 넘어온 데이터를 받는다.
# {
# "email": "a36@gmail.com",
# "password": "1234"
# "name": "Mod",
# "gender" : 1
# }
# 0은 여자 , 1은 남자
data = request.get_json()
#2. 이메일 형식 체크
try:
validate_email( data['email'] )
except EmailNotValidError as e :
return {'error' : str(e), 'error_no' : 1 } , 400
#3. 비밀번호 길이 체크 4자리 이상 12자리 이하가 정상이다.
if len( data['password'] ) < 4 or len( data['password']) > 12 :
return{'error' : '비밀번호 길이를 확인하세요', 'error_no' : 2 }, 400
#4. 비밀번호 암호화 작업
hashed_password = hash_password( data['password'] )
#5. 데이터베이스에 저장한다.
try :
# 데이터 insert
# 1. DB에 연결
connection = get_connection()
# 2. 쿼리문 만들기
query = '''insert into user
(email,password,name,gender)
values
(%s, %s , %s,%s);'''
record = (data['email'], hashed_password,data['name'],data['gender'])
# 3. 커서를 가져온다.
cursor = connection.cursor()
# 4. 쿼리문을 커서를 이용해서 실행한다.
cursor.execute(query, record)
# 5. 커넥션을 커밋해줘야 한다 => 디비에 영구적으로 반영하라는 뜻
connection.commit()
# 5-1. 디비에 저장된 아이디값 가져오기.
user_id = cursor.lastrowid
# 6. 자원 해제
cursor.close()
connection.close()
except mysql.connector.Error as e :
print(e)
cursor.close()
connection.close()
return {"error" : str(e), 'error_no' : 3}, 503
#6. jwt 억세스 토큰을 생성해서, 클라이언트에 응답해준다.
access_token = create_access_token(user_id)
return {'result' : 'success', 'access_token' : access_token}, 200

| 영화 추천 서비스 API - 로그아웃 (0) | 2022.06.23 |
|---|---|
| 영화 추천 서비스 API - 로그인 (0) | 2022.06.23 |
| Flask : JWT 로그아웃 API 사용방법 (0) | 2022.06.21 |
| Flask : JWT 토큰 유효기간 만료시키는 방법 (0) | 2022.06.20 |
| Flask : JWT 로그인한 유저만 처리할수 있는 API에, 토큰 적용하는 방법 (0) | 2022.06.20 |