Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (24)

Лучшие ответы пользователя

Все ответы (75)
  • Как развернуть сайт на django?

    @pyHammer
    Очень вас понимаю, сам мучился неделю, когда только начал изучать.
    Но на самом деле ничего сложно тут нет, вот вам пошаговая инструкция:
    C на сайте хостера, услугам которого я пользуюсь и у меня там крутится около 5 проектов все на Django
    Но если что-то будет там не понятно, то вот кратное изложение:
    1. Подключаемся к хостингу по SSH
    2. Входим в контейнер Docker (пароль тот же что и для авторизации в ssh)
    $ ssh localhost -p222
    3. Создаем виртуальное окружение
    $ virtualenv --no-site-packages --python=/usr/bin/python3.6 --prompt="(env)" .env

    4. Активируем виртуальное окружение
    $ source .env/bin/activate
    5. Устанавливаем зависимости
    pip install -r requirements.txt
    Конечно у вас должен быть файл с зависимостями requirements.txt
    6. Создаем файл passenger_wsgi.py рядом с manage.py со следующим содержимыым
    # -*- coding: utf-8 -*-
    import os, sys
    sys.path.insert(0, '/home/u/username/username.beget.tech/project')
    sys.path.insert(1, '/home/u/username/username.beget.tech/.env/lib/python3.6/site-packages')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()

    Тут нужно пояснить, путь /home/u/username/ формируется так /home/ первая буква имени вашего пользователя на beget / имя вашего пользователя на beget/.
    Домен username.beget.tech у вас будет доступен по умолчанию, его для тестов можно заюзать.
    7. Добавить домен в ALLOWED_HOSTS
    ALLOWED_HOSTS = ['username.beget.tech', ]
    8. Создаем файл .htaccess следующего содержания
    PassengerEnabled On
    PassengerPython /home/u/username/username.beget.tech/.env/bin/python

    9. Создаем папку tmp и в нем файл restart.txt
    $ mkdir tmp
    $ touch tmp/restart.txt

    Собственно после этих действий сайт должен завестись. Но не буду большим оптимистом, будут вылазить ошибки, так всегда когда что-то делаешь в первый раз. Но служба тех поддержки beget официально поддерживает сайты на python и вполне может помочь вам в развертывании сайта, а еще ответит на вопросы)
    Но если будут вопросы, можете и у меня спросить))
    Ответ написан
  • Как правильно расширить стандартную модель user?

    @pyHammer
    Ivan Nekrasov для того чтобы разделить пользователей по ролям, вам будет проще сделать так. Важно обратить внимание на то, что лучше делать так при старте разработки проекта или если имеете достаточный опыт, чтобы справится с определенными трудностями на уже рабочем проекте.
    Итак, вам нужно расширить модель User и добавить поле role
    class User(AbstractUser):
        role = models.CharField(max_length=32, choices=ROLE_CHOICES)

    Заменить параметр в settings.py
    AUTH_USER_MODEL = 'myapp.User'
    Создать и применить миграции.
    Далее вы просто в зависимости от того какая роль назначена пользователю проверкой if user.role == ADMIN, реализовываете бизнес логику.
    Ответ написан
  • Нужно ли использовать Celery?

    @pyHammer
    Как уже сказал Антон Рейтаровский Celery громоздкий, но в случаях когда мне требуется что-то более лёгкое, я использую python-rq
    Ответ написан
  • Choices или ForeignKey: что использовать?

    @pyHammer
    Если считаете, что будете довольно часто изменять или добавлять единицы измерения, то используйте ForeignKey. По части производительности, добавляйте к запросам prefetch_related, очень хорошая вещь, + 1 запрос ни как не повлияет на производительность. Но там тоже есть свои нюансы, это нужно учитывать.
    Ответ написан
  • Можно ли учить Django без знаний Python?

    @pyHammer
    Я так и сделал. Я знал PHP, но начал изучать Django без знания Python. Возможно это заняло у меня больше времени, чем если бы я сначала изучил базовый Python. Но вот уже 3 года пишу только под Django. Главное погружаетесь в глубь, открывайте исходный код пакетов и учитесь у других разработчиков, избегайте изобретения велосипедов (расширяйте свою копилку пакетов)
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (27)