开发者社区 问答 正文

flask教程数据库部分报错 ?报错

http://www.pythondoc.com/flask-mega-tutorial/database.html#id2
按照这个教程上db_migrate.py的代码 运行之后报错
Traceback (most recent call last):
File "./db_migrate.py", line 11, in
script = api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, tmp_module.meta, db.metadata)
AttributeError: 'module' object has no attribute 'meta'

展开
收起
爱吃鱼的程序员 2020-06-23 01:21:22 376 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-iv-database
    #看下英文原版的,有更新的主要是这一行

    #!flask/bin/python
    importimp
    frommigrate.versioningimportapi
    fromappimportdb
    fromconfigimportSQLALCHEMY_DATABASE_URI
    fromconfigimportSQLALCHEMY_MIGRATE_REPO
    v=api.db_version(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
    migration=SQLALCHEMY_MIGRATE_REPO+('/versions/%03d_migration.py'%(v+1))
    tmp_module=imp.new_module('old_model')
    old_model=api.create_model(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
    exec(old_model,tmp_module.__dict__)
    script=api.make_update_script_for_model(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO,tmp_module.meta,db.metadata)
    open(migration,"wt").write(script)
    api.upgrade(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
    v=api.db_version(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
    print('Newmigrationsavedas'+migration)
    print('Currentdatabaseversion:'+str(v))

    你这个meta属性没有了吧,对应的类型你使用对了没

    2020-06-23 01:21:37
    赞同 展开评论