Django Apache статические файлы - PullRequest
0 голосов
/ 14 июля 2010

У меня есть пара концептуальных вопросов:

  1. относительно обслуживания статических файлов (носителей) в Django на производстве.

Я понимаю, что Django обслуживает статические файлы в разработкеотличается от производства:

прочитайте это:

http://docs.djangoproject.com/en/dev/howto/deployment/modpython/#serving-media-files http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/#howto-deployment-modwsgi

Какой путь выбрать?mod python или mod wsgi?

Какая будет отличная файловая структура для хранения всех файлов сайта django, например: js, код python, медиа и т. д. при использовании любого из двух указанных выше вариантов?

Другая концептуальная проблема, с которой я сталкиваюсь, касается шаблонов:

Если у меня есть шаблон и в этом шаблоне у меня есть переменные, такие как {{variable.name}} или теги {% tagname%}, и яхотите записать в эту переменную или пометить текст, изображения, звуки, видео и т. д., как записать в «запись» определение в файле view.py (где я считаю, что оно должно быть сохранено для последующей записи в шаблон)?в шаблон.

Я надеюсь, что это не смущает и сложно.То, что я не понимаю, это процесс, как я могу записать в шаблон.

Я знаю, что нужны переменные, они определены в представлении, но я не понимаю, какие шаги концептуально мне нужно написать в этот шаблон.

Спасибо!

Ответы [ 4 ]

1 голос
/ 14 июля 2010

Выбор mod_python против mod_wsgi не имеет абсолютно никакого отношения к обслуживанию статических файлов. Напротив, вся идея в том, что вы используете для этого стандартную функциональность Apache, и mod_python / wsgi запускает код Python для вашего приложения Django. Тем не менее, вы обязательно должны использовать mod_wsgi - mod_python теперь отменен и не поддерживается.

Не думаю, что я действительно понимаю вторую часть вашего вопроса. Если я правильно читаю, вы спрашиваете, как шаблон знает, как обслуживать ресурсы. Ну, это не так. Вы просто передаете URL-путь к этим ресурсам, который обычно основан на параметре MEDIA_URL.

1 голос
/ 14 июля 2010

mod_python мертв.Используйте mod_wsgi.Ничего не ставьте под корнем документа.Поместите директивы Alias ​​для статического носителя перед директивой WSGIScriptAlias.

Переменные контекста передаются в функцию рендеринга в зависимости от ситуации.

0 голосов
/ 14 июля 2010

Относительно вашего комментария о необходимости изменить многие вещи между разработкой и производством:

Здесь есть хорошая страница , которая дает хорошие советы по настройке среды разработки и производства для обслуживания статических страниц,Если вы все настроите правильно, у вас будет очень мало изменений по сравнению с разработкой и производством ... фактически, в этом примере вы просто измените настройку DEBUG в settings.py на True для разработки и False на производстве.

Кроме того, если вы исследуете использование local_settings.py, которое исключаете из контроля версий, то вам нечего будет менять по сравнению с dev и production, поскольку ваши параметры разработки будут в local_settings.ру - но это совсем другая тема.: -)

0 голосов
/ 14 июля 2010

По поводу вашего первого вопроса. По словам Грэма Дамплтона (автора mod_wsgi), mod_python официально мертв , поэтому для нового проекта лучше придерживаться mod_wsgi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...