Source Code:
from engine import app
from flask_script import Manager, Server
from flask_migrate import Migrate, MigrateCommand
from models import db, DF_User, DF_Post, DF_Comment, DF_Tag
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command("s", Server())
manager.add_command("server", Server())
manager.add_command("db", MigrateCommand)
@manager.shell
def manager_shell_context():
return dict(app=app,
db=db,
df_user=DF_User,
df_post=DF_Post,
df_comment=DF_Comment,
df_tags=DF_Tag
)
def main():
print("===============================================================================")
print("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||")
print("-------------------------------------------------------------------------------")
manager.run()
print("-------------------------------------------------------------------------------")
print("|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||")
print("===============================================================================")
if __name__ == '__main__':
main()
Error Report:
from flask_migrate import Migrate, MigrateCommand
ImportError: cannot import name 'MigrateCommand' from 'flask_migrate' (/usr/local/lib/python3.8/dist-packages/flask_migrate/init.py)
解决方案:
pip install flask-migrate==2.6.0
-- 通过pip安装版本为2.6.0 的flask-migrate库即可解决
-- 注意如果是使用Pycharm生成新venv环境开发,要在Pycharm的Terminal环境下进行这条命令的操作
-- 如果是在Pycharm外(譬如shell、CMD中直接运行Flask)执行flask的运行命令,则需要注意在系统环境下也要执行一次安装命令