ФорумПрограммированиеPythonDjango → mod_wsgi и статика

mod_wsgi и статика

  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 29 ноября 2011 г. 23:40, спустя 51 секунду

    сегодня посмотрю на джанго мфц :-)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 3:04, спустя 3 часа 23 минуты 40 секунд

    дык в mod_wsgi этой возможности почему-то нет.

    потомучто mod_wsgi это не вебсервер, а модуль-обработчик, а сервер тут апач, вот он и должен этим заниматься
    Спустя 62 сек.
    и джанга в новом проекте папку public не создаёт, хотя это именно веб-фреймворк. и ставить предлагают два веб-сервера, а если один - выкручивайся как хочешь. странно всё это

    Чего? Пруф про:
    1) Что за папка "public"?
    2) Ставить два вебсервера
    Спустя 147 сек.
    от нагрузок лучше защищен,

    от нагрузок не защищаются
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 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 полезло
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 30 ноября 2011 г. 9:38, спустя 45 минут 5 секунд

    от нагрузок не защищаются

    Я имел ввиду различные ненужные нагрузки - ddos например
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 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 collectstatic
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 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 на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 14:42, спустя 2 часа 1 минуту 52 секунды

    ыыы. прошел все 4 части туториала по жанге. жанга сильн опохожа на то что мы щас делаем с синклером, только она пиздата тем что питон удобный язык и теже модели получаются совсем минималистичные :D

    pyCharm + django жесть ваще. везде подсказки и подсветки и писать нихуя не надо, сам импортит, сам темплейты файлы генерит, сам вьюхи. прелесть :-)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 15:22, спустя 40 минут 26 секунд

    ага, правда тормозит на больших файлах, но это регулируется в инспекторе
    Спустя 47 сек.
    правда мне уже надоел pyCharm, даже для рефакторинга, юзаю снова emacs для всего
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 15:35, спустя 12 минут 21 секунду

    adw0rd, емакс чем тебе удобен? дай скриншот :)
    Сапожник без сапог
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 17:29, спустя 1 час 54 минуты 16 секунд

    Он мне нравится тем что он такой клевый, более подробно будет в статье, которую я пишу год наверное, если не больше :)
    И кстати, юзаю только emacs23-nox (без иксов), удобно и на сервере его юзать сразу потомучто
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • technobulka

    Сообщения: 4540 Репутация: N Группа: Джедаи

    Spritz 30 ноября 2011 г. 17:37, спустя 8 минут 27 секунд

    думал, что я один такой с черным фоном подсветки кода))
    Высокоуровневое абстрактное говно
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 18:09, спустя 31 минуту 35 секунд

    adw0rd уже 7 лет пишет статью, какой клёвый PHP. Когда допишет про emacs, он уже будет ему противен.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 30 ноября 2011 г. 19:29, спустя 1 час 19 минут 39 секунд

    никогда не считал что php клевый :)
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • mathete

    Сообщения: 435 Репутация: N Группа: Джедаи

    Spritz 2 декабря 2011 г. 0:21, спустя 1 день 4 часа 52 минуты

    Всем привет.
    Хотел добавить на всякий случай, ну чтобы совсем отпало желание статику джангой отдавать.


    можно и в джанге, конечно, но 1 - вдруг не джанга, и 2 - не будет ли питон лишнюю память кушать при отдаче файла в 100500 мегабайт?


    Так вот будет. Причем жадно. Там Миша кусок вьюхи отдающей статику приводил. В ней есть строка:

    response = HttpResponse(open(fullpath, 'rb').read(), mimetype=mimetype)


    У питона IO "неленивый" (strict). метод read() запросит сколько надо памяти под файл и если ОС решит, что это недюже дохрена, то даст. А если не даст, то получите MemoryError.

    Лучше для каждой сферы использовать свой инструмент.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 2 декабря 2011 г. 9:16, спустя 8 часов 55 минут 17 секунд

    mathete, какими судьбами в наших краях?)
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!