Flask Turtoial(WTF表單)
阿新 • • 發佈:2020-08-28
- 如何建立登陸功能
-
匯入flask_wtf模組
-
在form.py中建立LoginForm表單類和相關欄位
-
建立login.html頁面引用 LoginForm例項form的相關欄位 比如form.username
-
建立/login路由,return render_template(記得要渲染form和Title='Sign In')
@app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): flash('Login requested for use {}, remember_me={}'.format( form.username.data, form.remember_me.data)) return redirect('/index') return render_template('login.html', title='Sign In', form=form)
HTTP 路由預設是什麼? 如何覆蓋?
在Web瀏覽器中 GET請求會將什麼新增到URL中? POST通常什麼時候使用? 區別是什麼? Method Not Allowed通常是什麼原因?
前端的頁面怎麼寫?
在前端的導航欄下,使用jinja2 with語句 將方法get_flashed_messages()的值附給messages
如果報錯,python已經在使用中,檢視python程序,殺死
ps -fA | grep python
給表單新增錯誤提示
<!- 使用者錯誤--> {% for error in form.username.errors %} <span style="color: red;">[{{ error }}</span> {% endfor %} </p> <p> <!- 密碼錯誤--> {{ form.password.label }}<br> {{ form.password(size=32) }} {% for error in form.password.errors %} <span style="color: red">[{{ error }}</span> {% endfor %}
span會換行嗎? br是什麼? 為什麼要迴圈明明只有一個錯誤,卻要用列表?
生成URL
<div>
Microblog:
<a href="/index">Home</a>
<a href="/login">Login</a>
</div>
@app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): # ... return redirect('/index')
直接在模板和檔案中編寫url有什麼壞處?用什麼函式可以解決?怎麼使用?
app/templates/base.html:
<div>
Microblog:
<a href="{{ url_for('index') }}">Home</a>
<a href="{{ url_for('login') }}">Login</a>
</div>
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
flash('Login requested for use {}, remember_me={}'.format(
form.username.data, form.remember_me.data))
return redirect(url_for('index'))
return render_template('login.html', title='Sign In', form=form)