Совместное использование чертежей Flask

Я хочу сделать API с Flask, и у него также должна быть панель администратора. Я предполагаю, что Blueprints — это то, что нужно, но я не хочу делать модели дважды.

Моя структура будет такой:

- app - api - admin - models

Итак, мой вопрос: как я могу получить доступ к моделям в папке models в моем плане api и моем плане admin?

Заранее спасибо.


person Theo Bouwman    schedule 26.12.2016    source источник


Ответы (2)


если вы находитесь в модуле в папках api или admin, вы можете импортировать что-либо из модуля в папке models, используя эту нотацию

from ..models.module_name import model1, model2, etc

для небольших проектов я обычно храню все модели в одном файле models.py, например:

[app]
  [blueprint_1]
     __init__.py
     views.py
  [blueprint_2]
  [static]
  [templates]
  __init__.py
  models.py

затем из любого из ваших файлов чертежей просто:

from ..models import model1, model2, etc
person abigperson    schedule 26.12.2016
comment
Спасибо, я думал, что импорт был из текущей папки и без возврата. - person Theo Bouwman; 26.12.2016
comment
Нет проблем, надеюсь, это поможет - person abigperson; 26.12.2016

Об импорте. Если ваш каталог включает __init__.py, то это пакет Python, поэтому . используйте для текущего каталога. Например:

auth/ 
     __init__.py 
     forms.py 
     views.py 
#views.py
from forms import Form name 
from . import auth_blueprint # imports from __init__.py 

Итак, если вы хотите импортировать из другого каталога, вы должны использовать .. для импорта из файла __init__.py, скажем, ваш каталог моделей включает эти файлы:

models/ 
    __init__.py 
    UserModel.py 

Теперь давайте импортируем модели для модуля авторизации:

#auth/views.py 
from .. import models # import froms models/__init__.py 
from ..models import UserModel
person metmirr    schedule 26.12.2016