Python Flask 模型介绍和配置方法
本文详细讲解 Python Flask 框架中数据模型(M)的配置方法。内容涵盖从安装 pymysql、flask-sqlalchemy 到 flask-migrate 库,通过 ORM 映射建立数据库连接。文章演示了如何定义模型类、配置数据库 URI,并利用 Flask-Migrate 命令初始化、迁移及升级数据库表结构,最后结合注册功能示例展示 MTV 模式的完整整合流程。
Flask 数据模型与数据库连接
Flask 遵循 MTV 架构模式,其中 M 代表 Model(模型),即数据模型,在项目中对应数据库操作。Flask 与数据库建立连接主要有两种方式:一是直接使用 pymysql 进行底层连接;二是采用基于 pymysql 的 ORM(对象关系映射)方式,后者在 Web 开发中更为常见。ORM 通过对象形式映射数据库表,便于数据在页面展示。下文将记录使用 MySQL 和 ORM 方式连接数据库的具体步骤。
一、安装依赖库
准备工作:首先需要安装必要的 Python 库。
pip3 install pymysql 建公路
pip3 install flask-sqlalchemy 实现ORM映射
pip3 install flask-migrate 发布命令工具二、配置数据库连接及创建模型类
步骤一:配置数据库的连接路径。
# mysql+pymysql://user:password@hostip:port/databasename
# 数据库+pymysql://用户名:密码@主机ip:端口/数据库名
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@127.0.0.1:3306/flaskdemo'步骤二:搭建 flask-sqlalchemy。在 apps 包下创建 ext 包(通常用于存放第三方库配置),并在其 __init__.py 文件中添加相关代码。
db = SQLAlchemy() ---->必须跟app联系在 apps/__init__.py 文件(此处将 app 启动与初始化分离,该 __init__ 负责 app 初始化)中建立与 app 的联系。
def create_app():
....
# 跟app联系
db.init_app(app)
return app步骤三:创建模型。在 models.py 中定义模型,模型本质上是类,常被称为模型类。
class User(db.Model): ------> user表
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(15), nullable=False)
password = db.Column(db.String(12), nullable=False)
phone = db.Column(db.String(11), unique=True)
rdatetime = db.Column(db.DateTime, default=datetime.now)常见的字段数据类型包括: Integer 整型 String(size) 字符串类型,务必指定大小 Text 长文本类型 DateTime 日期时间 Float 浮点类型 Boolean 布尔类型 PickleType 存储 pickle 类型,主要涉及序列化 LargeBinary 存储大的二进制类型
可选参数配置: primary_key=True 设置为主键 autoincrement=True 启用自增 nullable=False 不允许为空 unique=True 设置唯一性 default=datetime.now 设置默认值,可设为当前系统时间或其他值
三、使用命令创建数据库表
a. 在 app.py 中导入模型:from apps.user.models import User,使模型与 app 关联。 b. 在终端使用以下命令操作数据库: flask db init:生成 migrations 文件夹 flask db migrate:自动生成版本文件 flask db upgrade:执行同步,完成数据库表创建
项目结构
| ---apps
| ---ext
| ---migrations flask db init 只需要init一次
|---versions 版本文件夹
|---71edde7ee937_.py ---》 flask db migrate 迁移
|---cc0dca61130f_.py
flask db upgrade 同步
flask db downgrade 降级四、以注册功能为例
1. 创建 app、migrate(绑定 app 和数据库),并通过 app.run 启动入口。

2. 在 apps 文件下 __init__.py 文件中初始化 app 配置。

3. 配置数据库连接信息。

4. 创建模型类。

5. 通过命令创建数据库表: flask db init:生成 migrations 文件夹 flask db migrate:自动生成版本文件 flask db upgrade:执行同步,完成数据库表创建 此时在 PyCharm 的数据库视图中即可看到已创建的数据库表。

6. 编写注册逻辑(视图层)。
# 用户注册
@user_bp.route('/register', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
repassword = request.form.get('repassword')
phone = request.form.get('phone')
email = request.form.get('email')
if password == repassword:
# 注册用户
user = User()
user.username = username
# 自定义加密:new_password = hashlib.sha256(password.encode('utf-8')).hexdigest()
# 使用自带的函数实现加密:generate_password_hash
user.password = generate_password_hash(password)
print(len(user.password))
user.phone = phone
user.email = email
# 添加并提交
db.session.add(user)
db.session.commit()
return redirect(url_for('user.index'))
return render_template('user/register.html')
7. 编写模板即 HTML 页面,即可实现简单的注册功能,完成 MTV 模式的整合。

到此这篇关于 Python Flask 模型介绍和配置方法的文章就介绍到这了,更多相关 Python Flask 模型内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









