Flask-Model模型配置

Flask默认并没有提供任何数据库操作的API
我们可以选择任何适合自己项目的数据库来使用
Flask中可以自己的选择用原生语句实现功能,也可以选择ORM(SQLAlchemy,MongoEngine)

ORM

Flask通过Model操作数据库,不管你数据库的类型是Mysql或者sqlite,Flask自动帮你生成相应数据库类型的SQL语句,所以不需要关注SQL语句和类型,对数据的操作Flask帮我们自动完成,只要会写Model就可以了。
Flask使用对象关系映射(Object Relational Mapping,简称ORM)框架去操控数据库。
ORM(Object Relational Mapping)对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换

Flask的ORM

Flask使用Python自带的ORM:SQLAlchemy
针对于Flask的支持,安装插件flask-sqlalchemy
pip install flask-sqlalchemy

连接SQLite

SQLite连接的URI:
	DB_URI = sqlite:///sqlite3.db

连接MySQL

USERNAME = 'root'
PASSWORD = 'root'
HOSTNAME = 'localhost'
PORT='3306'
DATABASE='HelloFlask'

格式:mysql+pymysql://USERNAME:PASSWORD@HOSTNAME:PORT/DATABASE

# 配置URL
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(
	USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE
)

在Flask中使用ORM

连接数据库需要指定配置
  app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI # 配置连接数据库路径DB_URI
  app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 禁止对象追踪修改

SQLite数据库连接不需要额外驱动,也不需要用户名和密码

# 在Flask项目中使用
db = SQLAlchemy()
db.init_app(app)

创建模型

class Person(db.Model):
	__tablename = 'person'
  id = db.Column(db.Integer,primary_key=True)
  name = db.Column(db.String(16),unique=True)

字段类型
  Integer
  Float
  String
  ...
  
常用约束
  primary_key
  autoincreament
  unique
  default
  index 为对应列建立索引,提升查询效率
  nullable

数据简单操作
  创建数据库,表
    db.create_all()
  删除表
    db.drop_all()

  在事务中处理,数据插入
    db.session.add(object)
    db.session.commit()

  获取所有数据
    Person.query.all()
  

数据迁移

安装
	pip install flask-migrate

初始化
	使用app和db进行migrate对象初始化
    from flask_migrate import Migrate
      migrate = Migrate()
      migrate.init_app(app=app,db=db)

数据迁移命令:
	在cmd或Terminal先进入项目目录:
	然后输入命令
    flask db init 创建迁移文件夹migrates,只调用一次
    flask db migrate 生成迁移文件
    flask db upgrate 执行迁移文件中的升级
    flask db downgrade 执行迁移文件中的降级


数据迁移的步骤:
  1、安装好数据迁移的包flask-sqlalchemy和flask-migrate
  2、在exts.py中初始化Migrate和SQLAlchemy
  3、在models中定义好模型
  4、在views.py中一定要导入models模块
      from .models import *
  5、配置好数据库(sqlite3或MySQL)
  6、执行数据迁移命令:
    6.1 先在cmd或Termial进入项目目录(app.py所在目录)
    6.2 然后输入命令:
      flask db init	创建迁移文件夹migrates,只调用一次
      flask db migrate 生成迁移文件
      flask db upgrade 执行迁移文件中的升级
      flask db downgrade 执行迁移文件中的降级
  7、查看数据库内容
    第一次使用需要下载数据库驱动,自己download下载
posted @   Bruce_JRZ  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
点击右上角即可分享
微信分享提示