flask_script下使用db.create_all()不能创建数据库
来源:互联网 发布:淘宝用什么进销存软件 编辑:程序博客网 时间:2024/06/05 18:29
最近在新建一个项目的时候遇到了这样的问题,使用工厂化函数构建项目,flask_sqlalchemy创建不了数据库的表,查询了很久都无解,现在终于找到了问题。
项目结构树
CMDB/
├─app/
│ ├─auth/
│ ├─main/
│ ├─static/
│ ├─templates/
│ ├─__init__.py
│ ├─config.conf
│ ├─models.py
├─manager.py
__init__.py
from flask import Flaskfrom flask_sqlalchemy import SQLAlchemy#初始化对象db = SQLAlchemy()#工厂化def create_app(): app = Flask(__name__) app.config.from_pyfile('config.conf') db.init_app(app) # 注册蓝图 from .main import main as main_blueprint from .auth import auth as auth_blueprint app.register_blueprint(main_blueprint) app.register_blueprint(auth_blueprint) return app
models.py
from . import dbfrom flask_sqlalchemy import SQLAlchemyfrom werkzeug.security import generate_password_hash,check_password_hash#转换密码用到的库# from flask_security import RoleMixin, UserMixin#登录和角色需要继承的对象class Test(db.Model): __tablename__ = 'test' id = db.Column(db.Integer(), primary_key=True) test = db.Column(db.String(80))class Test2(db.Model): __tablename__ = 'test2' id = db.Column(db.Integer(), primary_key=True) test = db.Column(db.String(80))
manager.py
from flask_script import Manager,Shellfrom app import create_app,dbfrom app.models import * #一定要引入模型类否则可能出现无法使用db.create_all()from flask_migrate import Migrate,MigrateCommand #flask 迁移数据app = create_app()migrate = Migrate(app,db)manager = Manager(app)# Migration commandsmanager.add_command('db', MigrateCommand)# # Add interactive project shell# def make_shell_context():# return dict(app=create_app, db=db)# manager.add_command("shell", Shell(make_context=make_shell_context))#创建数据库脚本@manager.commanddef create_db(): db.create_all()if __name__ == '__main__': # app.run() manager.run()
使用flask_script可以这样创建数据库的表,但是你没有在manager.py引入模型,就可能出现下面命令没有任何反应不报错的情况,所以需要引入所有的模型就行了,我也不太懂为什么,以后了解清楚了我再回头详细写下来。
python manager.py shellfrom app import db db.create_all()
阅读全文
2 0
- flask_script下使用db.create_all()不能创建数据库
- db.create_all()使用错误
- 关于flask db.create_all()无法创建表
- flask 关于 db.create_all() 报错
- Qt使用SQLite不能创建db文件问题
- android ormlite简单使用和读取sdcard下db数据库
- CentOs下数据库不能使用的解决方法
- Oracle DB 使用DBCA创建单实例ASM数据库用作恢复目录数据库
- android手机命令行下不能使用sqlite3命令查看*.db数据库文件解决办法
- android手机命令行下不能使用sqlite3命令查看*.db数据库文件解决办法
- android手机命令行下不能使用sqlite3命令查看*.db数据库文件解决办法
- android手机命令行下不能使用sqlite3命令查看*.db数据库文件解决办法
- android手机命令行下不能使用sqlite3命令查看*.db数据库文件解决办法
- 数据库中的DB-link使用
- python_使用Berkeley DB数据库
- 创建并连接Java DB(derby)数据库
- sqlite Manager的使用和在mac ox上创建DB数据库快捷方式
- Windows下创建用户不能使用的字符
- fork函数
- 使用javassist生成实体对象
- Linux Boot logo 图片的修改
- 集群RedHat6.5+JDK1.8+Hadoop2.7.3+Spark2.1.1+zookeeper3.4.6+kafka2.11+flume1.6环境搭建步骤
- 2017-07-18日看登录日志,显示十条:最早的是:2014-04-07 17:09,应该就是注册日期吧
- flask_script下使用db.create_all()不能创建数据库
- Git 服务器搭建
- 快学Scala笔记(二)
- FineReport单元格扩展与父子格设置
- loj 6197. 法克 最小路径覆盖 好题
- bash下的单方括号和双方括号
- 更改Ubuntu gcc、g++默认编译器版本
- SSH中设置Hibernate执行的SQL 语句打印控制台
- 如何在R中绘制树图(TreeMap)