美文网首页
flask 数据库操作

flask 数据库操作

作者: kizi | 来源:发表于2019-05-09 10:09 被阅读0次

首先创建一个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 为你的迁移文件的名称 不要后面的 _

相关文章

  • Flask数据库的链接和模块

    Flask SQLAlchemy操作数据库 1、Flask连接数据库: (1)安装flask_sqlalchemy...

  • Python学习

    flask-sqlalchemy数据库操作(一) flask默认情况下是不支持数据库操作的。所以我们操作数据库的话...

  • Flask--扩展包

    Flask-SQLalchemy:操作数据库Flask-migrate:管理迁移数据库Flask-Mail:邮件F...

  • Python 操作数据库

    Flask 中ORM操作数据库

  • 八、使用flask-SQLAlchemy创建模型与表的映射

    1、Flask连接MySQL数据库 想使用flask中的SQLAlchemy操作数据库,首先要能连接上数据库,这里...

  • Flask-SQLAlchemy详解

    flask中一般使用flask-sqlalchemy来操作数据库,使用起来比较简单,易于操作。 安装 配置 操作数...

  • Model

    1. Flask模型 Flask默认并没有提供任何数据库操作的API(Application Programmin...

  • Flask框架——数据库操作(增删改查)

    上篇文章我们学习了Flask框架——数据库配置及迁移同步,这篇文章我们学习Flask框架——数据库操作命令(增删改...

  • models(模型)

    Flask模型 Flask默认并没有提供任何数据库操作的API。 我们可以选择任何适合自己项目的数据库来使用。 F...

  • python day45_Flask入门

    数据库基本操作 在Flask-SQLAlchemy中,插入、修改、删除操作,均由数据库会话管理。 会话用 db.s...

网友评论

      本文标题:flask 数据库操作

      本文链接:https://www.haomeiwen.com/subject/bieioqtx.html