1. 安装依赖包
pip install flask-wtf
# 安装邮箱验证器
pip install email_validator
2. app.py
from flask import Flask,request,render_template
from forms import LoginForm
app = Flask(__name__)
@app.route('/login',methods=['GET','POST'])
def login():
if request.method == 'GET':
return render_template("login.html")
else:
form = LoginForm(request.form)
if form.validate():
return "登陆成功"
else:
return "邮箱或密码错误"
@app.route('/')
def hello_world(): # put application's code here
return 'Hello World!'
if __name__ == '__main__':
app.run()
3.forms.py
import wtforms
from wtforms.validators import length,email
class LoginForm(wtforms.Form):
email = wtforms.StringField(validators=[length(min=5,max=20),email()])
password = wtforms.StringField(validators=[length(min=6,max=20)])
4.templates/login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!-- action里存放的地址是表单提交到哪个url的地址-->
<form action="/login" method="post">
<table>
<tbody>
<tr>
<td>邮箱:</td>
<!-- name="email" 与 forms中的名字保持一致-->
<td><input type="text" name="email"></td>
</tr>
<tr>
<td>密码:</td>
<!-- name="emai" 与 forms中的名字保持一致-->
<td><input type="text" name="password"></td>
</tr>
<tr>
<td></td>
<td><button>登录</button></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
GET POST 二者区别
1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。