flask mysql 操作_flask 数据库操作

首先创建一个model的 基类(自己定义)

from flask_sqlalchemy import SQLAlchemy

from sqlalchemy import Column, SmallInteger

db = SQLAlchemy()

class Base(db.Model):

__abstract__ = True

status = Column(SmallInteger, default=1)

或者 你可以 在 models 文件夹下 创建 ____init____.py 文件 例如:

from flask_sqlalchemy import SQLAlchemy

__all__ = ['book']

db = SQLAlchemy()

from app.models import *

这样有助于在 app 的 ____init___.py 文件下初始化 整个项目的时候 在 db.create_all(app=app)的时候 不需要全部导入各个模板类图映射数据表, 就可以在数据库中创建所有表 只要在 models/____init___.py 的文件下 的 ____all____ = [ ] 中 输入 你想导出的文件。 如下为 app/___init____.py 文件下代码:

from flask import Flask

# 这一步很关键 会导入 models/__init__.py 文件 从而导出了 所有我想导出的 数据表文件

from app.models import db

def create_app():

app = Flask(__name__)

app.config.from_object('app.secure')

app.config.from_object('app.setting')

register_blueprint(app)

db.init_app(app)

db.create_all(app=app)

return app

def register_blueprint(app):

from app.web import web

app.register_blueprint(web)

数据库迁移

需要预先安装 flask-migrate 和 flask-script 包

需要执行自己定义的 python 脚本文件 通过 shell 执行

自定义脚本文件 manage.py 如下:

from flask import Flask

from flask_migrate import Migrate, MigrateCommand

from flask_script import Manager

from fisher import app

from app.models.base import db

from app.models.user import User

migrate = Migrate(app, db)

manager = Manager(app)

manager.add_command('db', MigrateCommand)

if __name__ == '__main__':

manager.run()

这里可以将db 放入model/下的 ____init____.py 文件 并在该文件下 导出自己想导出的数据表文件 这样就可以不需要在该脚本文件下 去一一导入自己需要操作的数据表文件

执行如下命令

python manage.py db init #初始化,工程目录下生成一个migrations文件夹

python mange.py db migrate 生成迁移文件操作

python manage.py db upgrade 更新到数据库中操作

python manage.py db downgrade d303dfaaefba 迁移回滚到自己想要的迁移版本 d303dfaaefba 为你的迁移文件的名称 不要后面的 _

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值