flask controller - 회원가입 post, session
본문 바로가기

Backend

flask controller - 회원가입 post, session

GET요청은 회원가입 form이 보이는것이고

POST요청을 form에 작성한 내용들이 db에 반영되게끔하는것 즉 회원가입기능을 수행한다.

 

register.html을 만든다

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>회원가입</h1>
    <!-- <form action="POST"> -->
    <form method="POST">
        <label for="userid">아이디</label>
        <input type="text" id="userid" placeholder="아이디" name="userid"><br>

        <label for="username">사용자이름</label>
        <input type="text" id="username" placeholder="사용자 이름" name="username"><br>

        <label for="password">비밀번호</label>
        <input type="password" id="password" placeholder="비밀번호" name="password"><br>
        <label for="re-password">비밀번호확인</label>
        <input type="password" id="re-password" placeholder="비밀번호확인" name="re-password"><br>
        <button type="submit">등록</button>
    </form>
</body>
</html>

app.py에 /register추가

이때 redirect와 db의 user클래스를 import하자

from models import User
import os
from flask import Flask, render_template, request, redirect
from models import db


#기본적으로 get만 설정되어있기때문에 메서드 post를 넣어준다 안그럼 메서드 에러남
@app.route('/register', methods=['GET', 'POST'])
def register():
    if request.method == 'GET':
        return render_template('register.html')
    else:
        #회원정보설정(모델에있는 class를 가져와서 사용자생성을하고 리다이랙션)
        userid = request.form.get('userid')
        username = request.form.get('username')
        password = request.form.get('password')
        re_password = request.form.get('re-password')
        print(userid)

        if not (userid and username and password and re_password):
            return render_template('register.html')

        if password != re_password:
            return render_template('register.html')
        
        #유저 객체생성
        useruser = User()
        useruser.userid = userid
        useruser.username = username
        useruser.password = password

        #db안에 session안에 add 후 커밋
        db.session.add(useruser)
        db.session.commit()

        return redirect('/')    

get과 post를 확인할수있다. + print(userid)값인 iu를 확인할수있음

 

반응형

'Backend' 카테고리의 다른 글

[flask 기초1] mvc 패턴 폴더 구조  (0) 2021.06.21
flask 절대경로  (0) 2021.05.13
flask db 연동(sqlite3)  (0) 2021.05.09
flask file download  (0) 2021.05.03
[flask 기초3] jinja, render_template  (0) 2021.04.29