Flask Turtoial(WTF表单)
- 如何创建登陆功能
-
导入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)
posted on 2020-08-28 20:50 sunnywillow 阅读(127) 评论(0) 编辑 收藏 举报