Flask实战2问答平台-User模型创建

来源:互联网 发布:centos 7 ftp服务器 编辑:程序博客网 时间:2024/06/08 10:53

models.py

from exts import dbclass User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer,primary_key =True,autoincrement = True)    telephone = db.Column(db.String(11),nullable = False)    username = db.Column(db.String(50),nullable = False)    password = db.Column(db.String(100),nullable = False)

manager.py

# -*- coding: utf-8 -*-from flask_script import Managerfrom flask_migrate import Migrate,MigrateCommandfrom zlktqa import appfrom exts import dbfrom models import Usermanager = Manager(app)#使用Migrate绑定app和dbmigrate = Migrate(app,db)#添加迁移脚本的命令到manager中manager.add_command('db',MigrateCommand)if __name__ == '__main__':    manager.run()

初始化:(venv) python manage.py db init 这个命令会在项目下创建 migrations 文件夹,所有迁移脚本都存放其中。
创建第一个版本:(venv) pythonmanage.pydbmigrate,migrations\versions.py(venv) python manage.py db upgrade,会把项目使用的数据库文件,更新为新的表格、字段,同时保留数据(此时打开数据库会发现表已经建好)
我第一次操作时出现了问题,原因是config.py连接数据库时有个字段不对
config.py更改为一下后运行正常
(原本我在DB_URI = ‘mysql+mysqldb://{}:{}@{}:{}/{}’.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE) 这里添加了一个charset会报错,去调就没事了)

import os DEBUG = TrueSECRET_KEY = os.urandom(24)HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'zlktqa_demo'USERNAME = 'root'PASSWORD = 'password'DB_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)SQLALCHEMY_DATABASE_URI = DB_URISQLALCHEMY_TRACK_MODIFICATIONS = False