表單介紹
1.表單標籤
聲明表單的範圍,位於表單標籤中的元素將被提交
語法: <form> </form>
屬性: Method(提交方式get,post) , Enctype(編碼) , action(提交方向)
2.表單域
<input ...> 屬性:type,name,value
文本框 <type="text">
密碼框 <type="password">
文本區域<type="textarea">
單選框 <type=radio>
復選框 <type=checkbox>
3.表單按扭
提交按鈕
復位按鈕
一般按鈕
代碼如下:
// index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div>
<h6>帳號驗證</h6>
</div> <form action="/login" method="POST">
<h6>text</h6>
<input type="text" name="username"><br>
<h6>password</h6>
<input type="password" name="password"><br>
<h6>textarea</h6>
<input type="textarea" name="textarea"><br>
<h6>radio</h6>
<input type="radio" name="radio"><br>
<h6>checkbox</h6>
<input type="checkbox" name="checkbox"><br>
</form>
<h6>{{get_flashed_messages()[0]}}</h6>
</body>
</html>
// main.py
from flask import Flask,render_template app = Flask(__name__) @app.route('/')
def index():
return render_template('index.html') if __name__=='__main__':
app.run()
運行結果:
表單的提交方式
POST
GET
實戰:用 Flask 开发用户管理
用戶登錄界面,默認用戶名爲 flask , 密碼爲 123123
登錄成功則顯示登錄成功。
------index.html-------
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>User Login</title>
</head>
<body>
<div>
<h6>User Login</h6>
</div> <form action="/login" method="POST">
<h6>用戶名:</h6>
<input type="text" name="username"><br>
<h6>密碼:</h6>
<input type="password" name="password"><br>
<input type="submit" name="submit"><br>
</form>
<font size="20">{{get_flashed_messages()[0]}}</font>
</body>
</html>
------main.py-------
from flask import Flask,render_template,request,flash app = Flask(__name__)
app.secret_key = ''
@app.route('/')
def index():
return render_template('index.html') @app.route('/login',methods=['POST'])
def login():
form = request.form
username = form.get('username')
password = form.get('password')
if not password:
flash("請輸入密碼!")
return render_template('index.html')
if not username:
flash("請輸入用戶名!")
return render_template('index.html')
if username == 'flask' and password == '':
return '<font size="50">登錄成功</font>'
else:
flash("錯誤")
return render_template('index.html') if __name__=='__main__':
app.run()