Форум → Программирование → Python → Django → mod_wsgi и статика
mod_wsgi и статика
Страницы: ← Предыдущая страница • Следующая страница →
-
-
30 ноября 2011 г. 3:04, спустя 3 часа 23 минуты 40 секунд
дык в mod_wsgi этой возможности почему-то нет.
потомучто mod_wsgi это не вебсервер, а модуль-обработчик, а сервер тут апач, вот он и должен этим заниматьсяСпустя 62 сек.и джанга в новом проекте папку public не создаёт, хотя это именно веб-фреймворк. и ставить предлагают два веб-сервера, а если один - выкручивайся как хочешь. странно всё это
Чего? Пруф про:
1) Что за папка "public"?
2) Ставить два вебсервераСпустя 147 сек.от нагрузок лучше защищен,
от нагрузок не защищаютсяhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
30 ноября 2011 г. 8:53, спустя 5 часов 49 минут 37 секунд
потомучто mod_wsgi это не вебсервер, а модуль-обработчик, а сервер тут апач, вот он и должен этим заниматься
как именно (не беря во внимание мной предложенный способ)?
public - это документ рут нового сайта, куда складывается статика - скрипты, картинки и т.д. Когда я создаю новый проект в рельсах с помощью rails new appname - в appname/ в числе прочих находится папка public и с ней всё понятно, когда создаю проект на джанго - появляются только py-файлы.Ставить два вебсервера
We recommend using a separate Web server – i.e., one that's not also running Django – for serving media.
https://docs.djangoproject.com/en/1.3/howto/deployment/modwsgi/не всё полезно, что в swap полезло -
30 ноября 2011 г. 9:38, спустя 45 минут 5 секунд
от нагрузок не защищаются
Я имел ввиду различные ненужные нагрузки - ddos например -
30 ноября 2011 г. 12:34, спустя 2 часа 55 минут 53 секунды
public - это документ рут нового сайта, куда складывается статика - скрипты, картинки и т.д. Когда я создаю новый проект в рельсах с помощью rails new appname - в appname/ в числе прочих находится папка public и с ней всё понятно, когда создаю проект на джанго - появляются только py-файлы.
Тут https://docs.djangoproject.com/en/dev/howto/static-files/ впринципе написано, но если коротко:
Вообщем да, django не создает такой каталог, его надо создать там где вам больше всего удобно и указать его в settings.STATIC_ROOT.
Я рекомендую иметь каталог static в каждом application (project_name/app_name/static), далее через ./manage.py collectstatic сливать его в /path/to/collectedstatic
Вот пример settings.py:
…
PROJECT_ROOT = os.path.dirname(__file__)
PROJECT_NAME = os.path.basename(PROJECT_ROOT)
…
STATIC_ROOT = os.path.join('/dbs', PROJECT_NAME, 'collectedstatic')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(PROJECT_ROOT, 'static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
#'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#'django.contrib.staticfiles.finders.DefaultStorageFinder',
)
….
И выполнить:
./manage.py collectstatichttps://smappi.org/ - платформа по созданию API на все случаи жизни -
30 ноября 2011 г. 12:40, спустя 5 минут 54 секунды
We recommend using a separate Web server – i.e., one that's not also running Django – for serving media.
Тут речь о проксировании на django-обработчик и отдачу статики, да, так делаю почти все, я же выше писал об этом
Я лично использую следующие связки: nginx+uwsgi, nginx+fastcgi, nginx+runcpserver и для разработки nginx+runcpdebug, nginx+runserver.
Ещё есть архаичная связка apache+mod_python, в которой статику отдает сама django, но если бы можно было там использовать Nginx и/или проект был бы НЕ внутренний, то я бы использоавл nginx+<something>https://smappi.org/ - платформа по созданию API на все случаи жизни -
30 ноября 2011 г. 14:42, спустя 2 часа 1 минуту 52 секунды
ыыы. прошел все 4 части туториала по жанге. жанга сильн опохожа на то что мы щас делаем с синклером, только она пиздата тем что питон удобный язык и теже модели получаются совсем минималистичные :D
pyCharm + django жесть ваще. везде подсказки и подсветки и писать нихуя не надо, сам импортит, сам темплейты файлы генерит, сам вьюхи. прелесть :-)Сапожник без сапог -
30 ноября 2011 г. 15:22, спустя 40 минут 26 секунд
ага, правда тормозит на больших файлах, но это регулируется в инспектореСпустя 47 сек.правда мне уже надоел pyCharm, даже для рефакторинга, юзаю снова emacs для всегоhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
30 ноября 2011 г. 15:35, спустя 12 минут 21 секунду
adw0rd, емакс чем тебе удобен? дай скриншот :)Сапожник без сапог -
30 ноября 2011 г. 17:29, спустя 1 час 54 минуты 16 секунд
Он мне нравится тем что он такой клевый, более подробно будет в статье, которую я пишу год наверное, если не больше :)
И кстати, юзаю только emacs23-nox (без иксов), удобно и на сервере его юзать сразу потомучтоhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
30 ноября 2011 г. 17:37, спустя 8 минут 27 секунд
думал, что я один такой с черным фоном подсветки кода))Высокоуровневое абстрактное говно -
30 ноября 2011 г. 18:09, спустя 31 минуту 35 секунд
adw0rd уже 7 лет пишет статью, какой клёвый PHP. Когда допишет про emacs, он уже будет ему противен. -
30 ноября 2011 г. 19:29, спустя 1 час 19 минут 39 секунд
никогда не считал что php клевый :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
2 декабря 2011 г. 0:21, спустя 1 день 4 часа 52 минуты
Всем привет.
Хотел добавить на всякий случай, ну чтобы совсем отпало желание статику джангой отдавать.
можно и в джанге, конечно, но 1 - вдруг не джанга, и 2 - не будет ли питон лишнюю память кушать при отдаче файла в 100500 мегабайт?
Так вот будет. Причем жадно. Там Миша кусок вьюхи отдающей статику приводил. В ней есть строка:response = HttpResponse(open(fullpath, 'rb').read(), mimetype=mimetype)
У питона IO "неленивый" (strict). метод read() запросит сколько надо памяти под файл и если ОС решит, что это недюже дохрена, то даст. А если не даст, то получите MemoryError.
Лучше для каждой сферы использовать свой инструмент. -
2 декабря 2011 г. 9:16, спустя 8 часов 55 минут 17 секунд
mathete, какими судьбами в наших краях?)https://smappi.org/ - платформа по созданию API на все случаи жизни
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!