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

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

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


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

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

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

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

    @Dirlandets
    Жахни мультипроцессингом по унынию.

    Если пока сам не допираешь до таких задач, не рекомендую использовать asyncio, пока въедешь поседеешь.

    Попробуй:
    from multiprocessing import Pool
    
    def get_dict(elem):
        #тут классная логика get_dict
        #можно даже сразу писать в csv
    
    p = Pool(5) #Это "процессы" 10, 20, 1000000000000
    p.map(get_dict, items) # map применит твою функцию get_dict к каждому элементу в списке items


    По началу впечатляет, и выглядит понятно.

    https://docs.python.org/2/library/multiprocessing.html
    Ответ написан
    Комментировать
  • Настройка 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
    Ответ написан
    Комментировать