最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • flask数据库迁移有什么作用

    正文概述    2020-06-02   321

    flask数据库迁移有什么作用

    使用Flsak-Migrate数据库迁移框架,可以保证数据库结构在发生变化时,改变数据库结构不至于丢失数据库的数据。使用其进行数据库进行数据库的迁移,主要分为三个步骤:

    1 创建数据仓库

    首先通过mysql数据库命令行新建数据库test.

     然后我们要在test.py中布置相关环境:

    import os,json
    from flask import Flask, render_template, session, redirect, url_for
    from flask_script import Manager,Shell
    from flask_sqlalchemy import SQLAlchemy
    from flask_migrate import Migrate,MigrateCommand
    app = Flask(__name__)
    app.config['SECRET_KEY'] = 'hard to guess string'
    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@127.0.0.1/test?charset=utf8'
    #app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
    
    manager = Manager(app)
    db = SQLAlchemy(app)
    migrate = Migrate(app,db)
    
    class User(db.Model):
        __tablename__ = 'users'
        id = db.Column(db.Integer, primary_key=True)
        username = db.Column(db.String(64), unique=True, index=True)
        age = db.Column(db.String(64))
        ....
        def __repr__(self):
            return '<User %r>' % self.username
    
    def make_shell_context():
        return dict(app=app, db=db, User=User)
    
    if __name__ == '__main__':
        manager.run()

    这里我们引入了Manager模块用来使启动flask时支持命令行。首先,分别引入了migrate模块和Manager相关模块;创建了一个manager对象,以支持自定义命令的配置;创建一个Migrate对象并关联对应的应用程序类对象app和数据库管理类对象db;最后一行将MigrateCommand命令加入到manager对象中,这样就可以在命令行中进行数据库迁移的相关命令.

    需要注意的是,引入Manager支持启动应用程序的命令行时,我们还需要修改app的run语句,改为:

    if __name__=='__main__':  
        manager.run()

    接下来我们使用命令行模式创建一个迁移的仓库:

    >>> python test.py db init

    'db'是在manager.add_command('db',MigrateComand)这句中我们声明的命令行对象名称,init是Migrate命令,表示初始化迁移仓库,运行完成之后,会在当前目录下创建一个migrations的文件夹,用于进行迁移的数据库脚本都放在这里.

    2 创建迁移脚本

    使用migarate子命令来创建数据库迁移脚本,在此之前我们先改动一下数据库的模型来验证迁移是否成功,我们在User模型中添加age属性:

    class User(db.Model):
        __tablename__ = 'users'
        id = db.Column(db.Integer, primary_key=True)
        username = db.Column(db.String(64), unique=True, index=True)
        age = db.Column(db.String(64))我们检查下是否更新成功:
    python test.py db migrate

    3 数据库更新

    flask数据库迁移有什么作用

    python test.py db upgrade

    成功进行了更新。

    Url:http://flask-migrate.readthedocs.io/en/latest/。


    起源地下载网 » flask数据库迁移有什么作用

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元