首页   注册   登录
 mink 最近的时间轴更新

mink

d.b
V2EX 第 113638 号会员,加入于 2015-04-27 09:46:25 +08:00
python 属性访问疑问
  •  1   
    Python  •  mink  •  2016-01-08 10:53:07 AM  •  最后回复来自 mink
    15
    mink 最近回复了
    就等着宝可梦呢, 其他的没啥兴趣。
    看看运气。。
    @sevenQu 你如果想要调用模块, 可以使用别名来修改模块在局部作用于的变量名 import app.models.wordRepertory as xxxx
    @sevenQu 我刚试了一下, 你这个创建不了不是 sqlalchemy 的问题, 而是你在函数中 import app.models.wordRepertory 的话, 会把 app 变量改成导入的当前模块, 也就是 app/__init__.py 这是因为 import 会把模块的名称默认导入到作用于中, 也就是把 Flask 实例, 改成了模块对象, 之后你在 db.init_app 中调用 就出错了
    @sevenQu 就算你没有导入模型, 在你的模型类继承 db.models 的时候, db 就会把这些模型记录下来。db.create_all() 是把所有跟 db 绑定的模型创建出来。 所以只要 db.models 绑定了模型, 然后执行 create_all 命令就会创建数据表
    @sevenQu flask-migrate 的 init 只是创建 migrations 的相关文件后续需要执行,migration 和 upgrade 才会记录版本和生成迁移脚本执行数据库初始化 https://juejin.im/post/5b1935355188257d492ae266
    @sevenQu 我不清楚 migrate 会不会自动生成数据表, 但是可以通过 db.create_all()完成初始化
    ````python
    @manager.command
    def init():
    db.create_all()

    $ python manage.py init

    ```
    不需要, 你在上面通过 from app.models import db 已经把模型和 db 绑定在一起了。create_app 中 db.init_app 是把 db 和当前的应用绑定在一起 只要使用 db.create_all 方法就可以调用 不需要引入模型
    我外婆家在一个郊区旁边的监狱一直把排污水放到河里面,我小时候清澈的河变成了臭水沟,而且这个合适附近所有村子的田里流的,后来都直接从地下打水用了,几个村子联合告了监狱没告赢, 呵呵。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2322 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 10ms · UTC 12:42 · PVG 20:42 · LAX 04:42 · JFK 07:42
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1