flask配置

本文介绍了在Flask项目中配置数据库所需的第三方包,如flask-script、pymysql、flask-sqlalchemy和flask-migrate。详细阐述了settings文件配置、模型创建、数据库迁移的步骤,包括初始化、迁移和升级。同时,提到了如何在模型更改后进行数据库迁移,以及如何降级数据库版本。
摘要由CSDN通过智能技术生成

一、所需要安装的第三方包

flask-script
pymysql   数据库
flask-sqlalchemy    实现ORM映射
flask-migrate    发布命令工具

 

二、项目settings文件配置

class Config:
    DEBUG = True
    # mysql+pymysql(驱动)://用户名:密码@ip地址:port/数据库名
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:admin@127.0.0.1:3306/flask_test'
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # Flask-SQLAlchemy将跟踪对象的修改并发出信号。这需要额外的内存,如果不需要,可以将其禁用。
    SQLALCHEMY_ECHO = True  # 如果设置为 Ture , SQLAlchemy 会记录所有 发给 stderr 的语句,这对调试有用。


class DevelopmentConfig(Config):  #开发版本
    ENV = 'development'


class ProductionConfig(Config):   #生产版本
    ENV = 'production'
    DDEBUG = False

三、创建模型

from datetime import datetime

from ext import db


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    userName = db.Column(db.String(15), nullable=False)
    password = db.Column(db.String(15), nullable=False)
    phone = db.Column(db.String(11), unique=True)  #unique设置不能重复
    createTime = db.Column(db.DateTime, default=datetime.now)

    def __str__(self):
        return self.userName + "===" + self.password

    def __repr__(self):
        self.__str__()

四、模型创建完后,一定要记得在app.py中导入这个模型,否则,数据库不能迁移

from apps import create_app
from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager

from ext import db
import apps.user.models


app = create_app()

manager = Manager(app=app)

# 命令工具
migrate = Migrate(app=app, db=db)  # 作用: 影响数据库的映射
manager.add_command('db', MigrateCommand)  # 作用: 将命令交给manager管理, 和 @manager.command作用类似

# @manager.command
# def init():
#     print('初始化')

if __name__ == '__main__':
    manager.run()  # python app.py runserver -h 0.0.0.0 -p 8000   # -p -h 可选,设置ip和端口

五、数据库迁移
python app.py db init       生成migrations文件夹
python app.py db migrate       执行迁移,产生一个版本文件
python app.py db upgrade       同步到数据库中,生成模型对应的表

 

六、如果后期修改模型或增加模型,只需要执行下面两个命令,不用再执行init,init只执行一次

python app.py db migrate
python app.py db upgrade

 

七、降级数据库版本

python app.py db downgrade     #会降低数据库版本,并删除对应的表

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值