关于 flask shell


此处,为何此处使用 python shell 也可创建数据库、表?

个人理解: 因为flask-sqlalchemy是基于sqlalchemy的,就像你写代码的时候,db.column也可以通过导入SQLALCHEMY来实现命令补全(参考: PyCharm Flask-SQLAlchemy 不会自动补全db.Column、Integer、String等,但下载的示例可以。),所以应该在python shell也是可以使用的.(并且flask也是个python框架)

个人理解,不知道是否准确,大佬回答后@一下我.

这好像不是同一个联系~
因为书中说明的是使用 flask shell 激活上下文后才可使用 db.create_all()
但是,现在的情况是 使用 python shell, 未激活程序上下文,也可使用 db.create_all()

你说的python shell是指项目目录的python shell吗,还是指公共环境的python shell?

不会的,你可能哪里搞错了……可以写一个最简单的程序测试下。

执行 db.create_all() 需要从程序实例的 config 属性获取数据库配置,没有推送程序上下文只会触发下面这个 RuntimeError 异常:

下次有问题发论坛就好,不用发微信消息(微信不适合交流技术问题)。