网站内链工作做足,佛山网站建设与设计,在家怎么利用电脑赚钱,可以做免费推广的网站Flask Flask架构概述1.安装Flask2.创建第一个Flask应用3.运行 Flask路由与视图函数1.动态路由2.支持多种HTTP请求方式3.使用jinja2模板渲染HTML4.模板继承与块 Flask表单处理与用户输入1.安装Flask-wtf2.创建一个简单的表单3.表单验证 Flask的项目结构与部署1.项目结构 Flask 是… Flask Flask架构概述1.安装Flask2.创建第一个Flask应用3.运行 Flask路由与视图函数1.动态路由2.支持多种HTTP请求方式3.使用jinja2模板渲染HTML4.模板继承与块 Flask表单处理与用户输入1.安装Flask-wtf2.创建一个简单的表单3.表单验证 Flask的项目结构与部署1.项目结构 Flask 是一个轻量级的 web 框架基于 Python 语言开发设计理念注重简洁、灵活和易用。Flask作为一个“微框架”本身非常简洁提供了构建 web 应用所需的核心工具但并不强制开发者遵循复杂的项目结构因此被广泛应用于 web 开发领域。
Flask架构概述
Flask架构作为一个微架构强调简单性和灵活性。他一来两个重要的python库来提供核心功能 werkzeug:这是Flask的底层库提供了WSGI接口、HTTP请求和响应处理、路由等核心功能 jinja2一个功能强大的模板引擎用于动态生成HTML页面 1.安装Flask
安装FLask非常简单只需使用python的包管理工具pip即可
2.创建第一个Flask应用
Flask的应用结构非常简单只需创建一个python文件并通过Flask()类来实例化应用对象 Flask(_name ):创建 Flask应用实例_name_参数用于 Flask 了解当前模块的名称通常我们使用这个参数来帮助 Flask 在不同模块间进行配置。 app.route(‘/’):定义路由和视图函数的映射。/是根路径当用户访问根 URL 时Flask会调用 hello world()函数。 return’Helloworld:视图函数返回一个简单的字符串响应Flask 会将其作为 HTTP 响应返回给客户端。 app.run(debugTrue):启动Flask开发服务器debugTrue 表示启用调试模式这样可以在开发过程中自动重载应用并在发生错误时显示详细信息。 3.运行
保存文件并关闭防火墙运行访问 Flask路由与视图函数
Flask的核心之一就是路由系统它将用户访问的URL与对应的视图函数相连接。Flask通过装饰器app.route()来定义路由,而视图函数则负责处理用户的请求并返回响应
1.动态路由
Flask支持动态路由函数可以通过URl中的动态部分来获取数据。 name:这是一个动态路由参数Flask 会提取 URL 中的 name 部分并将其传递给视图函数。 当用户访问/greet/John 时name 的值将为 John返回的响应为 HelloJohn。 2.支持多种HTTP请求方式
Flask 不仅支持 GET 请求还支持其他常见的 HTTP 请求方法如 POST、PUT、DELETE 等。你可以通过methods 参数来指定允许的请求方法:
windows无法指定请求方法在linux使用curl -X方式验证 如图不指定方式时默认为GET methods[‘POST’]:只允许 POST 请求访问此路由。如果用户通过 GET 请求访问Flask 会返回405 Method Not Allowed 错误。 3.使用jinja2模板渲染HTML
Flask 结合 jinja2 模板引擎来动态生成 HTML 页面。你可以将 HTML 文件与 Python 代码分离保持应用结构清晰。在 Fask 中模板文件默认存放在 templates 文件夹中。 扩展vim关闭自动缩进 set ’paste 假设我们有一个名为 greet.html 的模板文件内容如下: 模板文件templates应和aaa.py在同一级目录
在Flask应用中我们可以通过render_template函数渲染模板并传递动态数据 render_template(‘greet.html’,namename):Flask会加载greet.html模板会将name的值传递给模板。模板中的{{ name }}会被替换为传入的值 4.模板继承与块
Flask支持和块(Block)功能这对于构造复杂页面非常有用 基础模板base.html: 子模版index.html {% extends’base.html’%}:子模板继承了 base.html 模板。 {% block title %}Home{% endblock ‰}:覆盖父模板中的 title 块。 {% block content %}:定义页面的主要内容区域。 Flask表单处理与用户输入
Flask 可以通过表单来获取用户输入常见的做法是结合 Flask-WTF 扩展来简化表单处理和验证Flask-WTF为Flask 提供了一个表单类你可以在表单类中定义字段和验证规则。
1.安装Flask-wtf 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.表单验证
Flask 表单处理的强大之处在于它的验证机制。通过 wtforms你可以非常方便地为表单字段添加各种验证规则。比如除了 DataRequired()你还可以使用: Length(min2max50):验证输入的长度。 Email():验证输入是否是有效的邮箱地址。 EqualTo(‘password’):验证两个字段的值是否相等 Flask的项目结构与部署
1.项目结构
随着应用的复杂度增加Flask应用的结构通常也会变化 /my flask app /app /templates index.html/static /css /js init_.py routes.py forms.py run .py /templates:存放所有 HTML 模板文件。 /static:存放静态文件(如CSS、JS、图片等)。init·py:初始化 Flask 应用, routes.py:定义所有路由和视图函数。 forms.py:定义表单类。 Flask 应用的开发环境通常使用 Flask run 启动但在生产环境中我们需要通过更强大的 web 服务器进行部署常见的有: Gunicorn:一个Python WSGI HTTP 服务器常用于生产环境部署 Nginx:作为反向代理前端处理静态文件请求转发动态请求到Flask应用。 部署时可以通过以下命令启动 Flask 应用: gunicorn -w 4 run:app
这将启动一个4线程的Gunicrn服务器run是指向Flask应用实例的模板