Flask-Login — 用户注册、登录、登出
Flask-Login — 用户注册、登录、登出 本章你将学会用 Flask-Login 实现 Session 用户认证,这是 Flask Web 开发最重要的安全保障。 Flask-Login 是什么? Web 应用的 HTTP 请求本质上是无状态的——服务器不会自动记住你是谁。 Flask-Login 通过 Session 机制实现用户状态的维护:登录后服务器在 Session 中存入用户 ID,后续请求自动识别当前用户。 ..
表单处理 — Flask-WTF
表单处理 — Flask-WTF 本章你将学会用 Flask-WTF 规范化处理表单:定义表单类、自动 CSRF 保护、字段校验与错误提示。 为什么要用 Flask-WTF? 上一章的注册和登录表单是手写的:手动从 request.form.get() 取值、手动校验、手动显示错误。 Flask-WTF 基于 WTForms 为 Flask 封装,提供: 表单类定义,字段 + 校验规则集中管理 自动 CSRF 保护 模板中渲染..
Flask-Migrate — 数据库迁移
Flask-Migrate — 数据库迁移 本章你将学会用 Flask-Migrate 安全地管理数据库结构变更,并理解与 Django migration 的对应关系。 为什么不能一直用 db.create_all()? db.create_all() 有两个致命缺陷: 只在表不存在时创建。修改模型(如新增字段),已存在的表不会更新 不保留变更历史。无法回滚到之前的数据库状态 数据库迁移 就像数据库的 Git——每次结构变..
视图函数 — 渲染文章列表与详情页
视图函数 — 渲染文章列表与详情页 本章你将学会用视图函数从数据库查询数据,渲染首页和详情页,并用 Blueprint 拆分路由。 视图函数的职责 Flask 视图函数的职责与 Django 一致:接收请求 → 查询数据 → 渲染模板。 实例 [mycode4 type='python'] # 文件路径:app.py from flask import Flask, render_template fro..
Flask-SQLAlchemy — 设计数据库模型
Flask-SQLAlchemy — 设计数据库模型 本章你将学会用 Flask-SQLAlchemy 定义数据模型,创建 SQLite 数据库表,并插入测试数据。 为什么要用 ORM? 直接写 SQL 语句操作数据库繁琐且容易出错。 ORM(对象关系映射) 让你用 Python 类来定义表结构,用 Python 方法操作数据。 Flask-SQLAlchemy 是 SQLAlchemy 的 Flask 集成版,封装了常见操作,配..
Flask 命令行 API
Flask 命令行 API Flask 基于 Click 构建了命令行工具。通过 flask 命令运行应用和管理任务。 所有 CLI 类都在 flask.cli 模块中。 FlaskGroup Flask 的主命令组。通过 flask 命令使用。 参数 说明 add_default_commands=True 是否添加 run、shell、routes 等默认命令 ..
Flask Web 应用
Flask Web 应用 本章带你从零开始,用 Flask 创建第一个 Web 应用,理解微框架的设计哲学。 Flask 与 Django 的定位差异 Django 是「大而全」的全栈框架,自带 ORM、模板引擎、管理后台、用户认证、表单处理等。 Flask 是微框架——核心极简,只提供路由和模板渲染,其他功能通过扩展按需添加。 特性DjangoFlask 设计哲学开箱即用(电池全包)微框架,按需扩展 ORM内置 Djang..
Jinja2 模板 — 渲染 HTML 页面
Jinja2 模板 — 渲染 HTML 页面 本章你将学会用 Jinja2 模板引擎渲染完整的 HTML 页面,抽取公共布局。 从字符串到模板 上一章视图函数直接返回字符串,里行嵌 HTML 标签,无法复用、难以维护。 render_template() 是 Flask 渲染模板的入口:它加载 HTML 文件、注入变量、返回完整的 HTML 响应。 实例 [mycode4 type='python'] #..
Flask 定义路由 API
URL 定义路由 API Flask 提供三种方式定义路由规则:@app.route() 装饰器、add_url_rule() 方法、直接操作 url_map。 URL 变量转换器 转换器 语法 匹配规则 Python 类型 string <string:name> 或 <name> 不含 / 的任意..
Flask 视图函数 API
Flask 视图函数 API 视图函数可以附加特殊属性来控制路由行为。这些属性通常不需要手动设置,但在某些高级场景下非常有用。 视图函数属性 属性 类型 默认值 说明 __name__ str 函数名 用作 endpoint 名。在蓝图中会自动加蓝图名前缀 methods list None 视图函数接受..