企业网站建设案例网络营销软件商城
文章
- 1.Flask框架概述
- 1.1安装flask框架
- 1.2创建你的第一个flask应用
- 1.3运行flask应用
- 2flask路由与视图函数
- 2.1动态路由
- 2.2支持多种HTTP请求方法
- 2.3 使用jinja2模板渲染html
- 2.4模板继承与块
- 3.flask表单处理与用户输入
- 3.1安装flask-wtf
- 3.2创建一个简单的表单
- 3.3表单验证
1.Flask框架概述
Flask作为一个微框架,强调简单性和灵活性。它依赖于两个重要的Python库来提供核心功能:
Werkzeug:这是Flask的底层库,提供了wSGI接口、HTTP请求和响应处理、路由等核心功能。
Jinja2:一个功能强大的模板引擎,用于动态生成HTML页面。
Flask的设计目的是让开发者能够快速开发应用,并提供了灵活的方式进行扩展。如果你不需要复杂的功
能,Flask的核心本身已经足够满足需求。如果你需要更多高级特性,可以通过Flask的扩展库进行补充。
1.1安装flask框架
安装Flask非常简单,只需使用Python的包管理工具pip即可:
安装完成后,你可以通过创建一个简单的F1ask应用来验证是否安装成功。
1.2创建你的第一个flask应用
Flask的应用结构非常简单,只需创建一个Python文件,并通过Flask()类来实例化应用对象。
Flask(_name):创建Flask应用实例,_name_参数用于Flask了解当前模块的名称,通
常我们使用这个参数来帮助F1ask在不同模块间进行配置。
@zz.route(‘/’):定义路由和视图函数的映射。'/'是根路径,当用户访问根URL时,Flask
会调用hello_world(函数。
return’Hello,World!':视图函数返回一个简单的字符串响应,Flask会将其作为HTTP响应
返回给客户端。
zzh.run(host=‘’,port=,debug=True):启动Flask开发服务器,debug=True表示启用调试模式,这样可以在
开发过程中自动重载应用,并在发生错误时显示详细信息
1.3运行flask应用
python3 文件脚本执行
这时F1ask会启动一个开发服务器,默认会监听127.0.0.1:5000。打开浏览器,访问
http://127.0.0.1:5000/,你会看到“Hel1o,Wor1d!”的页面。
2flask路由与视图函数
Flask的核心之一就是路由系统,它将用户访问的URL与对应的视图函数相连接。Flask通过装饰器
@zzh.route()来定义路由,而视图函数则负责处理用户的请求并返回响应。
2.1动态路由
Flask支持动态路由参数,可以通过URL中的动态部分来获取数据。
:这是一个动态路由参数,Flask会提取URL中的name部分并将其传递给视图函数。
当用户访问/greet/John时,name的值将为John,返回的响应为Hello,John!。
结果
2.2支持多种HTTP请求方法
Flask不仅支持GET请求,还支持其他常见的HTTP请求方法,如POST、PUT、DELETE等。你可以通过
methods参数来指定允许的请求方法
methods=[‘POST’]:只允许POST请求访问此路由。如果用户通过GET请求访问,Flask会返回
405 Method Not Allowed 错误。
使用post访问结果
2.3 使用jinja2模板渲染html
flask结合Jinja2模板引擎来动态生成HTML页面。你可以将HTML文件与Python代码分离,保持应用
结构清晰。在Flask中,模板文件默认存放在templates文件夹中。
假设我们有一个名为greet.html的模板文件
在flask应用中render_template调用函数模板实现传递参数0
实验结果
2.4模板继承与块
Flask支持模板继承和块(Block)功能,这对于构建复杂页面非常有用。你可以在基础模板中定义通用
的布局结构,在子模板中覆盖特定的部分。
基础模板base.html
子模版可以调用父模板
{%extends’base.html’%}:子模板继承了base.html模板。
{% block title%}Home{%endblock%}:覆盖父模板中的 title块。
{%blockcontent%}:定义页面的主要内容区域。
3.flask表单处理与用户输入
Flask可以通过表单来获取用户输入,常见的做法是结合Flask-WTF扩展来简化表单处理和验证。
Flask-WTF为Flask提供了一个表单类,你可以在表单类中定义字段和验证规则。
3.1安装flask-wtf
3.2创建一个简单的表单
FlaskForm:继承自FlaskForm类,定义表单字段。
StringField(‘Name’,validators=[DataRequired()]):定义了一个文本输入字段,并且通
过DataRequired()验证器确保字段不能为空。
form.validate_on_submit():检查表单是否通过验证并被提交。
{{form.csrf_token}:Flask-WTF会自动生成并验证CSRFtoken,以防止跨站请求伪造攻
击。
{form.name()}:这是通过Jinja2模板渲染 NameForm表单的字段。form.name()会生成
对应的HTML标签。
{%ifform.name.data%}:如果用户提交了表单并且name字段不为空,则显示欢迎信息。
3.3表单验证
Flask表单处理的强大之处在于它的验证机制。通过wtforms,你可以非常方便地为表单字段添加各种验
证规则。比如,除了DataRequired(),你还可以使用:
Length(min=2,max=50):验证输入的长度
Email():验证输入是否是有效的邮箱地址。
EqualTo(‘password’):验证两个字段的值是否相等。