Задать вопрос
Ответы пользователя по тегу Django
  • Как узнать, что находится в json и как распрсить его и сохранить, только нужную информацию?

    @Dirlandets
    Используй стандартные средства Python, например библиотеку json

    Вот хорошая статья как обращаться с json.


    Схема работы следующая. Получаешь ответ сервера или что у тебя там. Превращаешь его в питоний объект и делаешь все необходимые манипуляции.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю структуру для распределения нагрузки на VPS-сервер?

    @Dirlandets
    Рано паришься.

    Успеешь переехать на какой-нибудь облачный вариант, типа aws или яндекс облака, которые легко масштабируются под такие задачи.

    Сейчас главное сосредоточься на сервисе. А к этой проблеме вернись когда сделаешь основной функционал.
    Ответ написан
    Комментировать
  • Настройка virtualhosts в uWSGI?

    @Dirlandets
    Привет!
    На примере моей задачи: одна бд на несколько однотипных сайтов, нужно было отображать разную главную страницу, подгружать немного разные стили css, контакты и т.д.

    В settings.py
    INSTALLED_APPS = [
        ...
        'django.contrib.sites',
        ...
    ]
    ALLOWED_HOSTS = ['subdomen.example.com', 'example.com', 'subdomen2.example.com']


    Не забудь мигрировать.
    В админке появится раздел "сайты", где можно добавить домены 'subdomen.example.com', 'example.com', 'subdomen2.example.com'.

    Во views.py
    current_site = get_current_site(request).domain # можно использовать id, но мне показалось нагляднее использовать domain
    if current_site == 'subdomen.example.com':
       # ...some logic например разный context или template
    elif  current_site == 'subdomen2.example.com':
       # ...some logic например разный context или template


    Для nginx все просто, для каждого домена создаешь конфиг, просто они ведут в одно место (сокет/порт ), можно создать один конфиг с if и т.д. но по мне так неудобно.

    ...
    location / {
                # в сокет
                proxy_pass http://unix:/tmp/example.socket; 
                # в порт, выбери одно
                #proxy_pass http://127.0.0.1:8000; 
                proxy_set_header Host $server_name;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    ...


    Есть еще вариант когда нужна совсем разная логика, тогда создается несколько файлов settings.py
    И нумеруются SITE_ID=1, SITE_ID=2, SITE_ID=3

    По uWSGI не могу вспомнить есть ли там нюансы, я давно пользуюсь gunicorn (привык просто)
    Но никаких особых настроек отличающихся от обычных делать не нужно:
    gunicorn --bind unix:/tmp/unix:/tmp/example.socket project.wsgi:application
    Ответ написан
    Комментировать