二 flask数据库操作相应包

[toc]

0.文件结构

flask_sql
    |-app.py
    |-config.py
    |-manager.py
    |-models
        |-base.py
        |-article

1.flask数据库操作需要的包

序号 包名 下载包 作用
1 cymysql pip intsall cymysql 数据库驱动
2 flask_sqlalchemy pip install flask-sqlalchemy 数据库连接
3 flask_script pip install flask-script 数据库创建和迁移
flask_migrate pip install flask-migrate 数据库创建和迁移

2.配置文件

config.py

DIALECT = 'mysql'
DRIVER = 'cymysql'
USERNAME = 'root'
PASSWORD = '123456'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask_sql'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(
    DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
  • 导入配置文件
app.config.from_object('config')

3.模型

  • models文件夹下模型基础文件base.py文件
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
  • models文件夹下文章模型article.py文件
from models.base import db

class Article(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    context = db.Column(db.Text, nullable=False)
  • 还可以添加其他模型

4.数据库连接

db.init_app(app)
  • 原来模型创建方法(这种创建方法,如果更改模型了,需要在数据库删除原来模型生成的sql表,重新运行,才能在数据库生成新的模型sql表)
from models.Base import db
from models.article import Article # 需要导入Article模型,不然不会创建表

db.init_app(app)

with app.app_context():
    db.create_all()

5.数据库迁移

manager.py

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from app import app
from models.Base import db

manager = Manager(app)

# 1.使用flask_migrate,必须绑定app和db
migrate = Migrate(app, db)

# 2.把MigrateCommand命令添加到manager中
manager.add_command('db', MigrateCommand)


if __name__ == '__main__':
    manager.run()
  • 数据库迁移命令(进入manager.py文件所在目录,执行下面三个命令,用于模型创建和模型迁移)
    • python manage.py db init:初始化一个迁移脚本的环境,只需要执行一次。
    • python manage.py db migrate:将模型生成迁移文件,创建新模型或模型更改了,需要执行这个命令。
    • python manage.py db upgrade:将迁移文件真正的映射到数据库中,每次运行了migrate命令后,就记得要运行这个命令。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。