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('/')
반응형
'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 |