V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sevenQu
V2EX  ›  Python

flask 如何将 models 文件拆成几个文件?,我新建了一个 models 文件夹发现无法引入 db?求解

  •  
  •   sevenQu · 2018-03-18 10:24:34 +08:00 · 2488 次点击
    这是一个创建于 2202 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 错误提示:Attempted relative import beyond top-level package

    • 结构如图,但是使用 from .. import db 引入失败,可以使用 from app import db

    • 我查了教程,import 的引入机制,看的我有点懵,有没有什么容易懂的说明
      ----------分割线-----------

    • 我目前有一个 sql 文件,执行的话,会直接导入一些数据,使用 sqlalchemy 怎么对接

    • 例如 varchar ( 100 ),int ( 10 ),怎么和 sqlalchemy 的 integer,string 对应

    • int ( 10 )我觉得是和 integer 对应,但是 integer 没有长度限制

    • 勉强试了一下发现提示 TypeError: 'list' object is not callable,弄得我不知所措

    • 希望有经验的人可以指点一下

    4 条回复    2018-03-18 20:18:22 +08:00
    testcount
        1
    testcount  
       2018-03-18 10:37:54 +08:00 via Android
    model 文件下建议拆分成多个业务的 model,在里面导入业务 model 外的用绝对导入(提前设好 PYTHONPATH ),包内导入就用你那种相对导入。

    int(n) 里面的 n 只是代表在 client 的显示宽度。不代表 integer 的存储大小,没什么特别的意义。
    sevenQu
        2
    sevenQu  
    OP
       2018-03-18 10:49:55 +08:00
    @testcount 对,第二个我明白了,我就是想根据不同的业务分成不同的 model 文件,我不太明白你说的导入方式
    testcount
        3
    testcount  
       2018-03-18 11:03:41 +08:00 via Android
    @sevenQu 先了解下 Python 相对导入和绝对导入吧..用你的例子就是 from xx.app import db .
    sevenQu
        4
    sevenQu  
    OP
       2018-03-18 20:18:22 +08:00
    @testcount 可不可以给我一个 models 拆分的例子?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3129 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 12:58 · PVG 20:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.