Python进阶(五十三)-Flask Web开发实现将表单渲染成HTML

网友投稿 651 2022-05-30

#Python进阶(五十三)-Flask Web来发实现将表单渲染成HTML

在利用Flask进行Python WEB开发时,页面中的wtf.quick_form(form)函数中的参数form是如何与视图函数中的form变量关联起来的?即Flask是如何将表单渲染成HTML的?下面以实例的形式进行问题求解。

在视图函数views.py中:

将相应的表单类实例作为参数传递给模版。

相应的LoginForm()定义在forms.py中,定义如下:

Python进阶(五十三)-Flask Web开发实现将表单渲染成HTML

# -*- coding:utf-8 -*- from flask_wtf import Form from wtforms import StringField, PasswordField, BooleanField, SubmitField from wtforms.validators import Required, Length, Email, Regexp, EqualTo, DataRequired # 用户登录表单 class LoginForm(Form): uname = StringField(u'用户名:', validators=[ DataRequired(), Length(1,64), '^[A-Za-z][A-Za-z0-9_.]*$', 0, u'用户名必须由字母、数字、下划线或 . 组成']) pwd = PasswordField(u'密码:', validators=[DataRequired()]) remember_me = BooleanField(u'记住我?') submit = SubmitField(u'登录')

1

2

3

4

5

6

7

8

9

10

11

12

13

from flask_wtf import FlaskForm

1

相应的类中的参数也需要改为FlaskForm。

html模版内容如下:

{% extends "base_login.html" %} {% import "bootstrap/wtf.html" as wtf %} {% block content %} {{ super() }} {% for message in get_flashed_messages() %}

{{message}}
{% endfor %} {{ wtf.quick_form(form) }} {% endblock content %}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

另外,在调试过程中,曾经出现过预料之外的模版渲染情况,即生成的Web表单并未在表单模版中渲染成功。经过代码检查校验,发现是由于基模版与继承模版出现标签不匹配和匹配错误所造成的。

##经验教训

在定义基模版时应确保文档的结构完整,并予以继承模版适当的继承空间。

经过修改基模版与继承模版,模版可以正常渲染。页面如下图所示:

##附 电子书福利(免积分下载)

《Flask Web开发:基于Python的Web应用开发实战》

《Learning Python, 5th Edition》

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/e415b30dbbbc5ab4a2c1175b0e899fa7.png)

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/5ea7f92a4b50d8465587c45e4b34108a.png)

![这里写图片描述](https://img-blog.csdnimg.cn/img_convert/f26b6c802951d54cd92c22204011ed16.png)

Python web前端 渲染

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Vue进阶(八十六):VUE中iframe结合window.postMessage实现跨域通信
下一篇:CSS-positon
相关文章