上海网站建设电影联,在哪查看网站被收录的情况,莱芜金点子招聘信息,wap百度Flask框架 1.Flask框架1.1安装flask1.2创建自己的第一个flask应用1.3运行flask应用 2.flask路由与视图函数2.1动态路由2.2支持多种http请求方法2.3使用jinja2模板渲染HTML2.4模板继承与块 3. Flask表单处理与用户输入3.1安装Flask-WTF3.2创建一个简单表单3.3表单验证 1.Flask框… Flask框架 1.Flask框架1.1安装flask1.2创建自己的第一个flask应用1.3运行flask应用 2.flask路由与视图函数2.1动态路由2.2支持多种http请求方法2.3使用jinja2模板渲染HTML2.4模板继承与块 3. Flask表单处理与用户输入3.1安装Flask-WTF3.2创建一个简单表单3.3表单验证 1.Flask框架
Flask 作为一个微框架强调简单性和灵活性。它依赖于两个重要的 Python 库来提供核心功能:
Werkzeug:这是 Flask 的底层库提供了 WSGI 接口、HTTP 请求和响应处理、路由等核心功能。
Jinja2:一个功能强大的模板引擎用于动态生成 HTML 页面。
Flask的设计目的是让开发者能够快速开发应用并提供了灵活的方式进行扩展。如果你不需要复杂的功能Flask的核心本身已经足够满足需求。如果你需要更多高级特性,可以通过 Flask 的扩展库进行补充。
1.1安装flask
安装 Flask 非常简单只需使用 Python 的包管理工具 pip 即可: 安装完成后你可以通过创建一个简单的Flask 应用来验证是否安装成功。
1.2创建自己的第一个flask应用
Flask 的应用结构非常简单只需创建一个 Python 文件并通过 Flask()类来实例化应用对象。以下是一个最简单的 Flask 应用示例: 代码解析:
Flask(__name __ ):创建 Flask 应用实例__name__参数用于 Flask 了解当前模块的名称通常我们使用这个参数来帮助 Flask 在不同模块间进行配置。
app.route(‘/’):定义路由和视图函数的映射。/是根路径当用户访问根 URL 时Flask会调用 hello world()函数。
return Helloyh:视图函数返回一个简单的字符串响应Flask 会将其作为 HTTP 响应返回给客户端。
app.run(debugTrue):启动 Flask开发服务器debugTrue 表示启用调试模式这样可以在开发过程中自动重载应用并在发生错误时显示详细信息。
注意关闭服务器防火墙
1.3运行flask应用
保存上述代码为 app.py然后在命令行中运行: 这时 Flask 会启动一个开发服务器默认会监听 127.0.0.1:5000。打开浏览器访问http://127.0.0.1:5000/你会看到“Helloyh”的页面。
2.flask路由与视图函数
Flask 的核心之一就是路由系统它将用户访问的 URL 与对应的视图函数相连接。Flask 通过装饰器app.route()来定义路由而视图函数则负责处理用户的请求并返回响应。
2.1动态路由
Flask 支持动态路由参数可以通过 URL 中的动态部分来获取数据。以下是一个示例: 代码解析: :这是一个动态路由参数Flask 会提取 URL 中的 name 部分并将其传递给视图函数
当用户访问/greet/lisi 时name 的值将为 lisi返回的响应为 Hellolisi!。
f表示输出格式 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 的模板文件内容如下: 在vim中设置set paste取消缩进 在 Flask 应用中我们可以通过 render_template 函数渲染模板并传递动态数据 代码解析: render_template(‘greet.html’,namename):Flask 会加载 greet.html 模板并将 name的值传递给模板。模板中的{{ name }}会被替换为传入的值。
2.4模板继承与块
Flask 支持模板继承和块(Block)功能这对于构建复杂页面非常有用。你可以在基础模板中定义通用的布局结构在子模板中覆盖特定的部分。
基础模板base.html 子模版index.html 代码解析: {% extends ‘base.html’ %}:子板继承了 base.html 模板。 {% block title %}Home{% endblock %}:覆盖父模板中的 title 块。 {% block content %}:定义页面的主要内容区域
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():检查表单是否通过验证并被提交。
index.html模板 代码解析: {{ form.csrf_token }}:Flask-WTF会自动生成并验证 CSRF token以防止跨站请求伪造攻击。 {{ form.name() }}:这是通过 Jinja2 模板渲染 NameForm 表单的字段。form.name()会生成对应的 HTML 标签。 {% if form.name.data %}:如果用户提交了表单并且 name 字段不为空则显示欢迎信息。
3.3表单验证
Flask 表单处理的强大之处在于它的验证机制。通过 wtforms你可以非常方便地为表单字段添加各种验证规则。比如除了 DataRequired()你还可以使用: Length(min2max50):验证输入的长度。 Email():验证输入是否是有效的邮箱地址。 EqualTo(‘password’):验证两个字段的值是否相等。