Задать вопрос
Ответы пользователя по тегу Django
  • Как анализировать востребованность технологии?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Обратил внимание, что последние пару лет все чаще слышу про fastapi, насколько он уже созрел на рынке? "Слышать" это одно (субъективщина, хайп и все такие), может есть какие-то метрики, как определять востребованность конкретной технологии относительно другой, например django и fastapi

    Я придерживаюсь 2х критериев для ЯП, которые используются в малых-средний проектах, это сайт с поиском работы (hh), и фриланс площадки. Вот инфа по hh на 10.03.2025:

    Без взаимоисключений:
    - Django: 184 вакансии.
    - FastAPI: 172 вакансии.

    Взаимоисключающие django и fastapi:
    - Django: 100 вакансий.
    - FastAPI: 89 вакансий.

    Всего пару лет назад FastAPI составлял 30% от django, сейчас же они сравнялись (тенденция на лицо), на фрилансе FastAPI так же часто мелькает, а учитывая, что это относительно django новая технология, то на него обязательно стоит обратить внимание, т.к. вполне вероятно, что его рост на рынке продолжится.

    FastAPI изначально идет практически голым по функциональности, в отличие от django, т.е. разработчик должен иметь более высокую квалификацию, чтобы выполнять те же самые задачи. Скорее всего, это отразится на стоимости конечного проекта, хотя и производительность проекта будет сильно больше.
    Ответ написан
    1 комментарий
  • Как воспользоваться статическим css Django?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    style.css:
    boby{
    background-color: red;
    }

    Точно боби, не добби? ;)
    Ответ написан
    1 комментарий
  • Как зарегистрировать новый объект User в расширенную модель MyUser при помощи CreateView?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Если я правильно понял задачу, то как то так:
    # MyUser
    from django.contrib.auth.models import AbstractUser
    from django.db import models
    
    class MyUser(AbstractUser):
        # ...
        class Meta:
            swappable = 'AUTH_USER_MODEL'

    # MyUserCreationForm
    from django import forms
    from django.contrib.auth.forms import UserCreationForm
    from .models import MyUser
    
    class MyUserCreationForm(UserCreationForm):
        class Meta:
            model = MyUser
            fields = ('username', 'password1', '...')

    # view
    from django.urls import reverse_lazy
    from django.views.generic.edit import CreateView
    from .forms import MyUserCreationForm
    from .models import MyUser
    
    class MyUserCreateView(CreateView):
        model = MyUser
        form_class = MyUserCreationForm
        template_name = 'registration/registration_form.html'
        success_url = reverse_lazy('blog:index')

    # urls
    from django.urls import path, include
    from .views import MyUserCreateView
    
    urlpatterns = [
        path('auth/', include('django.contrib.auth.urls')),
        path('auth/registration/', MyUserCreateView.as_view(), name='registration'),
    ]
    Ответ написан
    1 комментарий
  • Как лучше сделать поле в models для нескольких файлов?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Или есть какое-нибудь другое решение?

    Для Вашей задачи можно использовать сигнал post_delete, чтобы автоматически удалять связанные файлы из модели File, когда удаляется объект модели Question.
    Ответ написан
    Комментировать
  • Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли засунуть django в сайт написанный на bitrix 1c?

    Возможно. Нужно ли? - нет.
    Ответ написан
    Комментировать
  • Как вывести сумму по колонке в джанго?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Примерно так (импорты и наименование в бд свои пропишите):
    from django.db.models import Sum
    from .models import Raschet
    
    # counter
    count = Raschet.objects.aggregate(total=Sum('summa'))['total']
    Ответ написан
    6 комментариев
  • Как написать мобильное приложение?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли написать бекенд для мобильного приложения на андроид и iOS на Django Python?

    Возможно.
    Если да, то что нужно для этого поизучать

    Все тоже самое, что и для разработки бэка для любого другого проекта.
    и на чем писать фронтенд для мобильного приложения?

    На чем умеете, но вот список от простого к сложному:
    - React Native.
    - Flutter.
    - Kotlin/Swift.
    Ответ написан
    1 комментарий
  • Как выполнить консольную команду из подкаталога?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    В Django каждая консольная команда должна быть модулем, который располагается в определенной структуре каталогов, чтобы Django мог его обнаружить и зарегистрировать.

    Если прям жмет, то можно разместить __init__.py в каждом каталоге до консольной команды, с импортом вида:
    from .command1 import Command1
    
    # app/
    #    management/
    #        __init__.py <-- this import
    #        commands/
    #            __init__.py <-- and this import
    #                command1/
    #                    __init__.py <-- and this import

    Это позволит Django обнаруживать команды, находящиеся в подкаталогах, но при этом требует, чтобы каждая команда была в своем собственном подкаталоге и имела собственный __init__.py.

    Кстати, имя команды которое Вы используете при вызове manage.py, должно соответствовать имени каталога, в котором находится команда. Соответственно, если Вы разместили команду в app/management/commands/subdir1/command1, Вы всё равно вызываете её как manage.py command1, не указывая subdir1. Django не поддерживает вызов команд с использованием точечной нотации для обозначения подкаталогов, как в Вашем примере subdir1.command1.
    Ответ написан
    Комментировать
  • Dango vs Spring Boot для веб-приложения. Что выбрать?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Хочу написать тяжелое веб-приложение.

    Круг пользователей не более двух тысяч человек.

    Что означают все эти буквы в цифрах? Сколько rps в пике ожидается?
    Если определить это не так легко, то хотя бы какие критерии для сравнения необходимо учитывать

    - Знание конкретного ЯП и его фреймворка.
    - Более быструю скорость разработки на Python и растущую сложность поддержки в процессе роста проекта из за своей скриптовой сущности Python.
    - Производительность Python>Django.
    Ответ написан
    Комментировать
  • Что используют чаще?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    а что из этого будет чаще использоваться в проектах и/или на работе

    Что скажет teamlead, то и будет использоваться. Если Вы не знаете ответа, то использовать - встроенные валидаторы.
    Ответ написан
    Комментировать
  • Как применять разные настройки Django в зависимости откуда был запрос?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Как с помощью джанго на бэке вычислять из какого домена был послан запрос и в зависимости от ответа применять те или иные настройки?

    Как вариант, можно создать новый класс в middleware с проверкой источника запроса и использованием другого конфига по условию. В wsgi.py (если используется wsgi) пишем примерно так:
    class CustomMiddleware:
        def __init__(self, get_response):
            self.get_response = get_response
    
        def __call__(self, request):
            d = request.get_host().split(':')[0]
    
            if d == 'www.prod.com':
                settings = importlib.import_module('project.config_prod')
            elif d == 'www.test.com':
                settings = importlib.import_module('project.config_test')
            else:
                settings = importlib.import_module('project.config')
    
            request.settings = settings
    
            response = self.get_response(request)
            return response

    Django не рекомендует изменять настройки в рантайме (после запуска Django), так как это может привести к нестабильной работе и непредсказуемым результатам, особенно в многопоточной среде. А так же, импортирование разных настроек внутри middleware не обязательно повлияет на уже инициализированные компоненты Django, такие как модели, представления и т.д., так как большинство настроек читается Django один раз при запуске.
    Ответ написан
  • Что выбрать WP или Python+Django для сайта?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Короткий ответ (с учетом указанного ТЗ) - WP.

    Длинный ответ:
    публиковать страницы, создавать иерархию страниц, чпу url, какой то слайдер с картинками

    Учитывая типовое ТЗ, ответ - WP (все это уже реализовано, преимущественно бесплатно и в большом количестве).
    небольшое количество услуги в регионе

    Вы на старте выхода в интернет, предположу, что количество оказываемых услуг оффлайн - будет примерно равнозначно количеству оказываемых услуг онлайн, а значит производительность инструмента не первостепенна, ответ - WP.
    Нашли компанию, предлагает разработку сайта на WP или на Python+Django (дороже и дольше)

    Начнем с того, что это не равнозначные инструмент, ибо WP - это готовый движок/CMS для сайта + сам сайт (готовые шаблоны), развернул на хостинге и готово. А вот Django - это фреймворк, т.е. некий набор инструментов, да он позволяет сделать из него что угодно (ах*енно сделать (на правах отвечающего)), но потом. Соответственно, если вопроса в функционале и производительности не стоит (и предположу - сделать быстро) - выбираем WP, будет дешевле и быстрее.

    Что обычно я использую (от начального проекта к финальному):
    1. WP в стоке + сборка фронта (webpack) с оптимизацией + кэширование.
    2. Докупка железа и горизонтальное масштабирование п1 балансировщиком.
    3. Профилирование и переписывание определенных запросов под конкретные задачи в самом WP, обычно добавляет производительности в 2-3 раза (от wp там мало что остается, но ценник и сроки еще не такие, как в п4).
    4. Python + Django + кэширование (если нужно быстрее любого WP и более специфический функционал).
    5. П4 + FastAPI (если прям совсем прижало по производительности).
    Ответ написан
    6 комментариев
  • Не подгружаются javascript при DEBUG = False, что делать?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Не подгружаются javascript при DEBUG = False, что делать?

    https://www.digitalocean.com/community/tutorials/w...
    - При DEBUG = True - Django автоматически обслуживает статические файлы (JavaScript, CSS, изображения и т.д.) напрямую через встроенный сервер. Это упрощает процесс разработки, поскольку не требует дополнительной настройки веб-сервера для обслуживания статических файлов. Изменения в статических файлах отображаются немедленно (hot reload), что позволяет быстро тестировать изменения без необходимости перезапускать сервер или собирать статические файлы.
    - При DEBUG = False - Django не обслуживает статические файлы напрямую. Вместо этого предполагается, что статические файлы будут обслуживаться через специализированный веб-сервер (Nginx, Apache), что является более оптимальным с точки зрения производительности и безопасности. Для сборки статики рекомендуется использовать команду $ python manage.py collectstatic. На выходе получится приблизительно следующая схема: Django <-> Static <-> Client.

    Уточню, что шаблоны Django не "собираются" в одно место, как статические файлы. Вместо этого, они обрабатываются динамически сервером Django, каждый раз при обработке запроса. Django заполняет шаблоны соответствующими данными и генерирует>возвращает html клиенту.
    Ответ написан
    Комментировать
  • Почему не могу словить чекбокс из шаблона в представлении?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting

    form method="post"

    а в этом представлении не могу его словить:


    def make_qr_connection_request(request, code):
        if request.method == 'GET':


    Отправляем POSTом, а условие пишем на GET, давайте все таки определимся, предлагаю так:
    def make_qr_connection_request(request, code):
        if request.method == 'POST':

    И еще, Ваша форма шлет запрос на make_connection_request, разумеется Вы ничего не поймаете в make_qr_connection_request (посмотрите на наименования). Вам нужно либо создать 2 формы с разными:
    <form method="post" id="connectRoomForm" action="{% url 'make_connection_request' %}" >
    <form method="post" id="connectRoomForm" action="{% url 'make_qr_connection_request' %}" >

    либо написать js, который сможет слать формы сразу по 2 адресам.
    Ответ написан
    4 комментария
  • Почему Django не видит static файлы? Выдает «GET /путь/ 404». В чем может быть проблема?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    # STATICFILES_DIRD = [os.path. join(BASE_DIR, 'static')]
    STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

    Результат?
    Ответ написан
  • Как разделить отображение видеопотоков после yolo в Джанго?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Грубо говоря, необходимо сделать "видеостену" в Джанго, на которой бы выводились потоки со всех камер.

    Как минимум, видеопоток нужно выводить по отдельности:
    <div>
        <img src="{% url 'stream_1' %}" alt="Stream 1" width="1024" height="768"/>
        <img src="{% url 'stream_2' %}" alt="Stream 2" width="1024" height="768"/>
    </div>

    Затем нужно модифицировать функцию video_stream так, чтобы она обрабатывала отдельные видеопотоки.
    Затем, необходимо модифицировать функцию с маршрутами urls.py, чтобы мы имели несколько маршрутов, например:
    path('video/stream_1/', views.video_stream, {'camera_id': 0}, name='stream_1'),
    path('video/stream_2/', views.video_stream, {'camera_id': 1}, name='stream_2'),
    Ответ написан
  • Почему вылетает ошибка об отсутствии модуля validators?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Импорты корректны?:
    from .validators import validate_even
    А эти?:
    from django.core.exceptions import ValidationError
    from django.utils.translation import gettext_lazy as _

    Вас не смущает условие?:
    # models.IntegerField('Оценка продукта', validators=[validate_even])
    if value != range(1,6)
    Ответ написан
    Комментировать