2016-02-10 2 views
0

Я отделяю свои взгляды от некоторых файлов.django несколько видов файлов

так что у меня есть это:

website/ 
│ manage.py 
│ 
├───app 
│ │ admin.py 
│ │ admin.pyc 
│ │ models.py 
│ │ models.pyc 
│ │ tests.py 
│ │ views.py 
│ │ views.pyc 
│ │ views_home.py 
│ │ views_home.pyc 
│ │ __init__.py 
│ │ __init__.pyc 
│ │ 
│ └───templates 
│ 
├───locale 
│ 
│ 
└───website 
     settings.py 
     settings.pyc 
     urls.py 
     urls.pyc 
     wsgi.py 
     wsgi.pyc 
     __init__.py 
     __init__.pyc 

В моем urls.py я импортировать каждый файл Views. Я пишу:
URL (г '^ дома/$', views_home.home),

Одна вещь, чтобы упомянуть, я также импортировать все виды из views.py к другим видам файлов, значит, в views_home.py I do

from views import * 

Потому что я хочу, чтобы некоторые функции, которые находятся в моих view.py, были доступны. У меня много импорта в файле представлений, некоторые из них представляют собой объекты типа HttpResponse, связанные с django, (Http404, HttpResponse, рендеринг и т. Д.) + другие внешние библиотеки. Дело в том, что если я превращу свои представления в модули - я создам папку с файлом __init__.py и сохраню файл моих представлений в этой папке. Как я могу избежать импорта тех же объектов, которые необходимы во всех файлах представлений (например, HttpResponse), в каждом файле вида в пакете?
Могу ли я записать импорт в файл __init__.py, который будет импортирован для всех файлов в пакете? (например, HttpResponse)
Обычно я вижу, что файл __init__.py пуст, что он имеет рядом с сообщением python о том, что папка представляет собой пакет?

+0

Возможно, они должны быть в двух отдельных приложениях – rofls

ответ

1

Вы не можете - и не должны пытаться - «избегать» этого; это фундаментальный принцип в Python, что все имена, используемые в модуле, определены там или импортированы явно.

Смежные вопросы