# flasklearnging **Repository Path**: ilinxq/flasklearnging ## Basic Information - **Project Name**: flasklearnging - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-11 - **Last Updated**: 2024-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flask 记录 ## 主要概念说明 ### 1. [路由](route.md) ### 2. [视图函数](view.md) ### 3. [模板渲染](template.md) ### 4. 表单处理 [参考](https://www.runoob.com/flask/flask-form.html) 处理表单数据涉及到接收、验证和处理用户提交的表单。 Flask 提供了基本的表单处理功能,但通常结合 Flask-WTF 扩展来简化表单操作和验证。 1. 基本表单处理:使用 request.form 获取表单数据。 2. 使用 Flask-WTF:结合 WTForms 进行表单处理和验证,简化表单操作。 3. 表单验证:使用验证器确保表单数据的有效性。 4. 文件上传:处理文件上传和保存文件。 5. CSRF 保护:确保表单免受跨站请求伪造攻击。 ### 5. 数据库操作 在 Flask 中,数据库操作是构建 Web 应用的一个重要方面。 Flask 提供了多种方式来与数据库进行交互,包括直接使用 SQL 和利用 ORM(对象关系映射)工具,如 SQLAlchemy。 以下是对 Flask 数据库操作的详细说明,包括使用 SQLAlchemy 的基本操作和 SQL 语句的直接执行。 1. 使用 SQLAlchemy:定义模型,配置数据库,执行基本的 CRUD 操作。 2. 创建和管理数据库:使用 db.create_all() 创建表。 3. CRUD 操作:添加、读取、更新和删除记录。 4. 查询操作:执行基本和复杂查询,包括排序和分页。 5. Flask-Migrate:使用 Flask-Migrate 管理数据库迁移。 6. 执行原始 SQL:使用原始 SQL 语句进行数据库操作。 SQLAlchemy 是一个强大的 ORM 库,可以简化数据库操作,通过 Python 对象与数据库表进行交互。 Flask-SQLAlchemy 是 Flask 的一个扩展,用于集成 SQLAlchemy。 安装Flask_SQLAIchemy ``` shell pip install flask-sqlalchemy ``` 模型是数据库表的 Python 类,每个模型类代表数据库中的一张表。 SQLAlchemy的Session对象管理ORM对象的所有持久性操作。 以下session方法执行CRUD操作: - db.session.add (模型对象) - 将记录插入到映射表中 - db.session.delete (模型对象) - 从表中删除记录 - model.query.all() - 从表中检索所有记录(对应于SELECT查询)。 ### [蓝图](./blueprints.md) ## 推荐目录结构 ### 中型项目结构 ``` my_flask_app/ │ ├── app/ │ ├── __init__.py # 初始化 Flask 应用和配置扩展。 │ ├── routes.py # 定义应用的路由和视图函数。 │ └── models.py # 定义应用的数据模型。 │ ├── config.py # 配置文件,包含应用的配置信息。 ├── requirements.txt # 列出项目的依赖库。 └── run.py # 用于启动 Flask 应用。 ``` ### 复杂项目结构 ``` my_flask_app/ │ ├── app/ │ ├── __init__.py │ ├── routes/ # 将不同功能模块的路由分开管理。 │ │ ├── __init__.py │ │ ├── main.py # 主模块的路由 │ │ └── auth.py # 认证相关的路由 │ ├── models/ # 管理数据模型,通常与数据库操作相关。 │ │ ├── __init__.py │ │ └── user.py # 用户模型 │ ├── templates/ # 存放 HTML 模板文件 │ │ ├── layout.html │ │ └── home.html │ └── static/ # 存放静态文件,如 CSS 和 JavaScript。 │ ├── css/ │ └── js/ │ ├── config.py ├── requirements.txt ├── migrations/ # 数据库迁移文件,通常与 SQLAlchemy 相关。 │ └── ... └── run.py ``` ### [错误处理](./error.md) ### [Flask 中间件和扩展](./middleware.md) ## WSGI WSGI(Web Server Gateway Interface)是一套接口规范。一个WSGI程序用以接受客户端请求,传递给应用,再返回服务器的响应给客户端。WSGI程序通常被定义成一个函数,当然你也可以使用类实例来实现。 [Python 中的WGSI](./wsgi.md) ## 部署 [Windows 部署](./windows%20flask.md) ## 目录说明 - middle 用于Flask的基本学习 - flaskr 主要用于建立API,与next.js进行互通 - nextflask 是next.js前端项目,用于测试与flask-restful的通信 - src和tmpl 为早期练习内容,不再使用。