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
peinstrike
V2EX  ›  Python

flask 如何用多个文件保存 models

  •  
  •   peinstrike · 2018-04-09 22:22:37 +08:00 · 4306 次点击
    这是一个创建于 2450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    请教 flask 怎么实现用多个文件保存 models。

    初始化数据库的时候,如果所有的 models 都保存在同一个文件中就可以全部建表成功;如果放在不同的文件中,则只有一个文件中的能建表成功。

    我现在使用的方法是在 db.py

    from flask_sqlalchemy import SQLAlchemy
    db = SQLAlchemy()

    在 models 文件中继承 db.Model 编写 model 类。
    创建数据库命令:

    db.drop_all()
    db.create_all()
    db.session.commit()

    第 1 条附言  ·  2018-04-10 12:52:26 +08:00
    目录结构:
    houko/
    ├── account
    │   ├── errors.py
    │   ├── __init__.py
    │   └── views.py
    ├── article
    │   ├── __init__.py
    │   └── views.py
    ├── db.py
    ├── houko.py
    ├── __init__.py
    ├── models
    │   ├── article.py
    │   ├── __init__.py
    │   └── user.py

    导入语句:
    houko.py 中:
    from houko.account import account as account_blueprint
    from houko.article import article as article_blueprint
    from houko.db import db
    db.py 中:
    from flask_sqlalchemy import SQLAlchemy
    article.py 中:
    from houko.db import db
    user.py 中:
    from houko.db import db
    7 条回复    2018-05-03 12:09:23 +08:00
    pabupa
        1
    pabupa  
       2018-04-09 23:49:01 +08:00
    在实例化 flask app 之后,导入一下所有的 model 文件就好了呀~
    peinstrike
        2
    peinstrike  
    OP
       2018-04-10 11:42:19 +08:00
    @pabupa 能详细说下怎么导入吗
    cz5424
        3
    cz5424  
       2018-04-10 11:56:23 +08:00
    贴一下你的导入的语句,还有目录结构
    peinstrike
        4
    peinstrike  
    OP
       2018-04-10 12:52:58 +08:00
    @cz5424 我在附言中添加了
    lozzow
        5
    lozzow  
       2018-04-12 09:30:26 +08:00
    有绑定 app 吗?
    bookding0
        6
    bookding0  
       2018-04-12 16:05:49 +08:00
    db.py 最前面写一句

    from houko.models import *


    只有一个 model 建表成功应该是因为你在 views 里只调用了一个 model。

    btw,这目录结构分的有点诡异=。=
    cz5424
        7
    cz5424  
       2018-05-03 12:09:23 +08:00 via Android
    建议把各个 models 扔在 views 同级,改名 models

    参照 https://github.com/cburmeister/flask-bones
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2962 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:54 · PVG 21:54 · LAX 05:54 · JFK 08:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.