Django built-in runserver media files serving

55 views
Skip to first unread message

livskiy

unread,
Dec 3, 2012, 5:19:57 AM12/3/12
to django-...@googlegroups.com
Привет всем,

Заметил, что contrib.staticfiles использует свой облегченный wsgi handler, который не запускает такие встроенные механизмы django, как middleware и т.д. Понятно, что в продакшене все по-другому, но в процессе-то разработки почему бы не сервить media files также? Ведь это может избавить от лишних запросов к базе из middleware, например, да и вообще облегчит цпу и память. Или я что-то упускаю?

Nikolay Fominykh

unread,
Dec 3, 2012, 5:30:34 AM12/3/12
to django-...@googlegroups.com
Чтобы сразу намекнуть разработчику, что нужно избегать обслуживание статики application сервером. Для этого есть более быстрые, стабильные, надежные и проверенные временем решения. Nginx например. 


3 декабря 2012 г., 14:19 пользователь livskiy <liv...@gmail.com> написал:
Привет всем,

Заметил, что contrib.staticfiles использует свой облегченный wsgi handler, который не запускает такие встроенные механизмы django, как middleware и т.д. Понятно, что в продакшене все по-другому, но в процессе-то разработки почему бы не сервить media files также? Ведь это может избавить от лишних запросов к базе из middleware, например, да и вообще облегчит цпу и память. Или я что-то упускаю?

--
 
 

Dmitry Agafonov

unread,
Dec 3, 2012, 5:36:35 AM12/3/12
to django-...@googlegroups.com
Так вот примерно я себе сервлю:

from django.views.static import serve
from django.conf import settings

urlpatterns = patterns('',
    # dev only, direct from webserver on production
    url('^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
)



3 декабря 2012 г., 14:19 пользователь livskiy <liv...@gmail.com> написал:
Привет всем,

Заметил, что contrib.staticfiles использует свой облегченный wsgi handler, который не запускает такие встроенные механизмы django, как middleware и т.д. Понятно, что в продакшене все по-другому, но в процессе-то разработки почему бы не сервить media files также? Ведь это может избавить от лишних запросов к базе из middleware, например, да и вообще облегчит цпу и память. Или я что-то упускаю?

--
 
 



--
Dmitry Agafonov ~ http://agafonov.pp.ru/

livskiy

unread,
Dec 3, 2012, 6:08:03 AM12/3/12
to django-...@googlegroups.com
urlpatterns = patterns('',
    # dev only, direct from webserver on production
    url('^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
)
 
Да, у меня также, как и у многих тут.

Вопрос собсно не в том, как нужно правильно отдавать статику в продакшене через nginx, а как раз про процесс разработки, когда мы юзаем devserver. Вопрос про непоследовательность django, как фреймворка, в решении о том, что contrib.staticfiles должны сервиться иначе, нежели media files, хотя это, по сути, одна задача, и она должна быть решена одним общим методом для всех файлов, будь то media или static файлы, ведь это просто файлы, котрые лежат в своих директориях, не больше. В общем, вопрос про идеологию, почему вот так именно сделано, а не иначе :) 

3 декабря 2012 г., 16:36 пользователь Dmitry Agafonov <agafono...@gmail.com> написал:
Reply all
Reply to author
Forward
0 new messages