初识Flask架构

张开发
2026/4/9 8:49:11 15 分钟阅读

分享文章

初识Flask架构
一、技能目标理解 Flask 框架基本概念与特点掌握 Flask 路由与视图函数的使用熟练使用 Jinja2 模板引擎渲染动态页面能够处理表单提交与数据验证能独立搭建并部署 Flask 应用二、Flask 框架概述Flask 是基于 Python 的轻量级 Web 微框架设计简洁、灵活、易用无强制复杂项目结构。核心依赖Werkzeug提供 WSGI 接口、HTTP 请求与响应处理、路由等核心功能Jinja2模板引擎用于动态生成 HTML 页面特点核心简洁提供 Web 开发核心工具可通过扩展库补充高级功能适合新手、快速原型、小型 Web 应用。三、安装 Flask实验过程基础安装命令pip3 install flask配置阿里源pip3 config set global.index-url http://mirrors.aliyun.com/pypi/simple pip3 config set install.trusted-host mirrors.aliyun.com4. 配置华为源pip3 config set global.index-url http://mirrors.huaweicloud.com/repository/pypi/simple pip3 config set install.trusted-host mirrors.huaweicloud.com5. 升级 pippython3 -m pip install --upgrade pip四、第一个 Flask 应用实验过程1. 实验步骤新建文件app.py写入代码pythonfrom flask import Flask app Flask(__name__) ​ app.route(/) def hello_world(): return Hello, World!\n ​ if __name__ __main__: app.run(host0.0.0.0, port5000, debugTrue)命令行运行python3 app.py浏览器访问http://127.0.0.1:5000/查看输出结果2. 代码解析__name__确定应用根路径app.route(/)绑定 URL 与视图函数return返回 HTTP 响应app.run参数host 允许外部访问port 指定端口debug 开启调试模式五、路由与视图函数实验过程实验 1动态路由代码编写pythonfrom flask import Flask app Flask(__name__) ​ app.route(/) def hello_world(): return Hello, World!\n ​ app.route(/greet/name) def greet(name): return fHello,{name}!\n ​ if __name__ __main__: app.run(host0.0.0.0, port5000, debugTrue)运行python3 app.py访问测试http://127.0.0.1:5000/greet/Alice实验 2指定 HTTP 请求方法1. 代码添加pythonapp.route(/submit, methods[POST]) def submit(): return Form submitted successfully!\n2. 运行服务用 curl 测试bashcurl -X POST 127.0.0.1:5000/submitGET 访问测试观察405错误实验 3Jinja2 模板渲染新建文件夹templates新建greet.htmlhtml!DOCTYPE html html langen head meta charsetUTF-8 titleFlask Example/title /head body h1Hello, {{ name }}!/h1 /body /htmlPython 代码pythonfrom flask import render_template app.route(/greet/name) def greet(name): return render_template(greet.html, namename)运行并访问http://127.0.0.1:5000/greet/zhangsan实验 4模板继承templates下新建base.html新建index.html继承父模板编写视图函数渲染index.html运行查看页面效果六、表单处理实验过程实验步骤1. 安装扩展bash运行pip3 install flask-wtf2.新建文件biaodan.pypythonfrom flask import Flask, render_template from flask_wtf import FlaskForm from wtforms import StringField from wtforms.validators import DataRequired ​ app Flask(__name__) app.secret_key s3cr3t ​ class NameForm(FlaskForm): name StringField(Name, validators[DataRequired()]) ​ app.route(/, methods[GET,POST]) def index(): form NameForm() if form.validate_on_submit(): return fHello,{form.name.data}! return render_template(index.html, formform) ​ if __name__ __main__: app.run(host0.0.0.0, port5000, debugTrue)templates新建index.html表单模板运行python3 biaodan.py浏览器访问提交表单测试验证常用验证器DataRequired ()必填Length (min2,max50)长度验证Email ()邮箱格式EqualTo (password)值一致七、项目结构与部署实验过程实验 1标准项目结构搭建按以下结构创建文件夹与文件plaintext/my_flask_app /app /templates /static __init__.py routes.py forms.py run.py分别写入对应代码实验 2生产环境部署1. 安装 Gunicornbashpip3 install gunicorn2. 运行部署命令bashgunicorn -w 2 -b 0.0.0.0:8000 app:app访问http://127.0.0.1:8000验证八、简单博客应用实验过程实验步骤1. 项目结构plaintext/simple_blog /app /templates index.html app.py2. 编写app.pypythonfrom flask import Flask, render_template, request app Flask(__name__) posts [] ​ app.route(/, methods[GET,POST]) def index(): if request.method POST: title request.form[title] content request.form[content] posts.append({title:title, content:content}) return render_template(index.html, postsposts) ​ if __name__ __main__: app.run(host0.0.0.0, port5000, debugTrue)编写index.html模板运行测试python3 app.py提交文章查看列表展示生产部署gunicorn -w 2 -b 0.0.0.0:8000 app:app九、总结Flask 是轻量级微框架核心包含路由、视图、Jinja2 模板、表单处理开发用app.run生产用 GunicornNginx可快速搭建小型 Web 应用。

更多文章