Ответы пользователя по тегу Django
  • Почему периодичность в celery не выполняется асинхронно?

    @iMrDron
    В дополнение к ответу Максима, вспомнил что был на докладе где рассказывали как при помощи asyncio скачать какие-то данные со всего вк за сутки, посмотрите, может вам будет полезно для вашей реализации - https://youtu.be/8wvQGRJiKdY?t=1699

    По сути вы можете начать с того что бы не сильно все прям менять, просто сделать таски целери на asyncio, что бы не 10к тасок, а 10 тасок, и каждая по 1000 реквестов делала при помощи asyncio. ну и если при этом будет 10 воркеров то по идее все будет одновременно как раз таки работать.
    Ответ написан
    6 комментариев
  • В Django есть аналог dd() как в Laravel?

    @iMrDron
    ipdb
    Ответ написан
    Комментировать
  • Django и React.js как соединить?

    @iMrDron
    Да по первой же ссылке: djbook.ru/examples/75
    И темплейт с которым можете сразу начать, поэксперементировать: https://github.com/mbrochh/django-reactjs-boilerplate
    Ответ написан
    Комментировать
  • Как писать цикл внутри views.py в Django?

    @iMrDron
    Все это можно сделать при помощи аннотаций примерно так:
    artists = (
        Artist.objects
        .filter(album_set__genres__name__in=["Traditional music", "Juz"])
        .annotate(album_count=Count('album_set', distinct=True))
    )

    В цикле делать запросы к бд недопустимо вообще! Изучите аннотации, если бывает что их возможностей не хватает, допустим нужно делать ещё промежуточные вычисления, тогда нужно идти по другому пути доставать из базы всех артистов, доставать одним запросом все альбомы для артистов отфильтрованные по genres, и уже по результатам итерироватся и считать что нужно.
    Ответ написан
    Комментировать
  • Как сейчас выглядит взаимодействие django + react?

    @iMrDron
    1) Для чего чаще используют react в связке с Django?
    - вставляют какие-то интерактивные элементы в страницы?
    - делают на нем весь фронт?
    - Пилят исключительно админку?

    В каждом проекте своя специфика, я видел все три варианта и все они отлично подходят.

    2) Можно ли совмещать обычные страницы (которые отрисовываются через view.py/urls.py), с тем что получается с DRF + react.js + routing?). т..е допустим часть сайта обычные странички, и другая часть на реакте?

    Да, это распространённый юзкейс, допустим у вас сайт весь просто на джанго, но пару страничек нужно сделать динамичными, вот там джанго вьюха просто отдаёт хтмл, где только допустим, шапка и футер и подключается скрипт react_app.js. и дальеш уже контент странички на реакте, допустим какой-нибудь шаборд. Очень удобный вариант, можно и не только дашборды, можно допустим виджет с нотификациями. Но, все эти вставки на реакте уже естественно получают данные по апи - django rest framework.

    3) Какой сейчас стандартный набор пакетов, который используется для этой связки? А то смотрю обучалки, там все время все разные пакеты используют?

    react + redux + react-router - это основной стек, а дальше уже добавляют что нужно. бывает что и роутер не нужен.

    4) Могут ли поисковики нормально индексировать такие сайты, либо все теряется в бездне?

    Да, тут есть проблема, гугл уже умеет вроде как рендерить js, но пока это все точно не понятно как работает.
    Варианты есть такие:
    https://prerender.io,
    https://github.com/markfinger/python-react
    или ещё почитать https://www.reddit.com/r/django/comments/406cpw/re...
    Я лично пока ничего такого не делал, так что точно сказать не могу, но уверен можно решить этот вопрос.

    5) Насколько действительно нужно знать хорошо реакт, чтобы закрыть его в резюме?

    зависит от того как вы быстро обучаетесь) но вообще как только поймёте нормально как работать с стеком react + redux + react-router, так и включайте.
    Ответ написан
    Комментировать
  • Где найти документацию по использованию bootstrap в django?

    @iMrDron
    Ничего такого, как обычно подключить статику и вперед)
    <!doctype html>
    
    {% load static from staticfiles %}
    
    <html lang="en">
        <head>
            <meta charset="utf-8">
            <title>{% block title %}Dron System{% endblock %}</title>
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <link href="{% static 'css/bootstrap.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href="{% static 'css/themify-icons.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href="{% static 'css/flexslider.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href="{% static 'css/lightbox.min.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href="{% static 'css/ytplayer.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href="{% static 'css/theme-nearblack.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href="{% static 'css/custom.css' %}" rel="stylesheet" type="text/css" media="all" />
            <link href='http://fonts.googleapis.com/css?family=Lato:300,400%7CRaleway:100,400,300,500,600,700%7COpen+Sans:400,500,600' rel='stylesheet' type='text/css'>
            {% block extra_style %}{% endblock %}
        </head>
        <body class="scroll-assist">
    
            {% include "navbar.html" %}
    
            <div class="main-container">
    
                {% block content %}{% endblock %}
    
                <footer class="footer-1 bg-dark bg-primary">
                    <div class="container">
                        <div class="row">
                            <div class="col-sm-6">
                                <span class="sub">&copy; Copyright 2016 - **** *****</span>
                            </div>
                            <div class="col-sm-6 text-right">
                                <ul class="list-inline social-list">
                                    <li>
                                        <a href="https://www.facebook.com/***************">
                                            <i class="ti-facebook"></i>
                                        </a>
                                    </li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <!--end of container-->
                    <a class="btn btn-sm fade-half back-to-top inner-link" href="#top">Top</a>
                </footer>
            </div>
            <script src="{% static 'js/jquery.min.js' %}"></script>
            <script src="{% static 'js/bootstrap.min.js' %}"></script>
            <script src="{% static 'js/flickr.js' %}"></script>
            <script src="{% static 'js/flexslider.min.js' %}"></script>
            <script src="{% static 'js/lightbox.min.js' %}"></script>
            <script src="{% static 'js/masonry.min.js' %}"></script>
            <script src="{% static 'js/twitterfetcher.min.js' %}"></script>
            <script src="{% static 'js/spectragram.min.js' %}"></script>
            <script src="{% static 'js/ytplayer.min.js' %}"></script>
            <script src="{% static 'js/countdown.min.js' %}"></script>
            <script src="{% static 'js/smooth-scroll.min.js' %}"></script>
            <script src="{% static 'js/parallax.js' %}"></script>
            <script src="{% static 'js/scripts.js' %}"></script>
            <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
            {% block extra_script %}{% endblock %}
        </body>
    </html>


    Хотя я бы ещё рекомендовал попробовать https://github.com/dyve/django-bootstrap3, с ней можно ренедрить формы в одну строчку, очень удобно.
    {% bootstrap_form form layout='horizontal' %}
    Ответ написан
    Комментировать