The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск web-фреймворка Django 3.0

07.12.2019 09:24

Состоялся релиз web-фреймворка Django 3.0, написанного на языке Python и предназначенного для разработки веб-приложений. Ветка Django 3.0 отнесена к категории выпусков с обычным сроком поддержки и будет получать обновления до апреля 2021 года. LTS-ветка 2.22 будет поддерживаться до апреля 2022 года, а ветка 1.11 до апреля 2020 года. Поддержка ветки 2.1 прекращена.

Ключевые улучшения:

  • Предоставлена поддержка работы в асинхронном режиме с выполнением в форме ASGI-приложения. Программный интерфейс ASGI (Asynchronous Server Gateway Interface) разработан как замена WSGI, нацеленная на обеспечение взаимодействия серверов, фреймворков и приложений, поддерживающих работу в асинхронном режиме. Поддержка запуска с использованием WSGI сохранена, а связанный с асинхронным режимом код включаются только при запуске в окружениях на базе ASGI.

    Для асинхронного режима реализован отдельный цикл обработки событий (event loop), в котором не допускается вызов кода, помеченного как "async unsafe". К такому коду отнесены, например, операции c СУБД (ORM), которые нельзя использовать в асинхронном контексте (в этом случае будет выводиться ошибка SynchronousOnlyOperation) и следует выносить в отдельный синхронный поток.

  • Добавлены специализированные перечисляемые типы TextChoices, IntegerChoices и Choices, которые можно использовать для определения текстовых и целочисленных полей в модели, например, при необходимости хранения в полях наборов читаемых меток, транслируемых в определённые признаки:
    
       class YearInSchool(models.TextChoices):
            FRESHMAN = 'FR', _('Freshman')
            SOPHOMORE = 'SO', _('Sophomore')
            JUNIOR = 'JR', _('Junior')
            SENIOR = 'SR', _('Senior')
            GRADUATE = 'GR', _('Graduate')
    
  • Добавлена возможность указания выражений, выводящих BooleanField напрямую в фильтрах QuerySet, без их предварительного аннотирования перед применением для фильтрации аннотаций.
  • Обеспечена официальная поддержка СУБД MariaDB 10.1 и более новых выпусков.
  • Для PostgreSQL реализован класс ExclusionConstraint для использования ограничений на базе выражения EXCLUDE;
  • Прекращена поддержка Python 3.5.


  1. Главная ссылка к новости (https://www.djangoproject.com/...)
  2. OpenNews: Релиз web-фреймворка Django 2.2
  3. OpenNews: Релиз web-фреймворка Django 2.1
  4. OpenNews: Релиз web-фреймворка Django 2.0
  5. OpenNews: Обновление web-фреймворка Django с устранением уязвимости
  6. OpenNews: Django мигрирует с Subversion на Git и GitHub
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51989-django
Ключевые слова: django, python
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:08, 07/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –27 +/
    жанга — ребенок строит на берегу песочный замок

    Spring Framework — команда архитекторов с двумя высшими образованиями проектируют бизнес-центр с десятком небоскребов

     
     
  • 2.2, Pearl (?), 10:14, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Толсто и с пальмовым жиром )
     
     
  • 3.4, Аноним (4), 11:15, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +10 +/
    С гидрогенизированным - пальмовый жир не самое плохое на свете (даже тот дешёвый технический который в РФ кладут в продукты питания).

    В принципе жанга не самое плохое на свете, но мне больше нравится фласк. Может быть мои масштабы не те, но я не представляю вебни без питона и этот питон не жанга.

     
     
  • 4.6, Пиони (?), 11:58, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Flask хорош как для маленьких проектиков, где нужен быстрый старт, так и для огромных, где нужно много раз отходить от идеологии, и гибкость здесь очень ценится. Django как раз между, когда проект уже не маленький, но ещё не большой
     
  • 4.7, Аноним (7), 12:02, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Фласк для наколенных поделок. И быстрых прототипов. А джанга для больших проектов и работе с базой данных через какой-нибудь ORM. И если тебе нужна готовая админка. Что очевидно нужно не всегда.
     
     
  • 5.10, Аноним (4), 12:17, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    К фласку что угодно можно прикрутить, мне он кажется гибче - меньше принуждения. А 99% "больших" проектов на джанге достаточно статики, имхо. 1% на инстаграм.
     
     
  • 6.16, Аноним (7), 13:20, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там придется много долго что-то крутить, а в джанго бац и работает.
     
  • 6.18, Ано Ним (?), 13:27, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    То-то и оно Flask обвешенный необходимыми ништяками очень быстро превращается в тот же Django, только там всё из коробки оптимизировано и готово к использованию, а в фласке с бубном придется поплясать...
     
  • 4.23, Аноним (23), 15:53, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >идрогенизированным - пальмовый жир не самое плохое на свете (даже тот дешёвый технический который в РФ кладут в продукты питания).

    Во-первых, это яд для организма. Во-вторых, аналогия с "пальмовым" маслом неуместна.

    Ни один расиянец за всю свою жизнь никогда не попробует натуральное пальмовое масло, которое полезно. Если конечно он не поедет в тропики в деревню к туземцам.

     
     
  • 5.24, Аноним (4), 15:58, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Яд не яд, а 100% тортиков из него и состоят. Лучше уж нутелла с пальмой.
     
     
  • 6.29, Эннон (?), 19:10, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Инфа 146% !!!
     
  • 5.34, пох. (?), 14:50, 08/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    как человек, неоднократно бывавший в тропиках, в том числе - в стране, у которой доходы от экспорта пальмового масла превышают доходы от экспорта нефти - докладываю: масло вам привозят - вполне натуральное. Оно настолько дешево, что нет ни малейшего смысла его подделывать. Это даже еще глупее чем подделывать, к примеру, подсолнечное.

    Местные туземцы в деревне - его не жрут. Вообще. Впрочем, их национальная жратва - возможно и здоровая, но совершенно отвратительна даже без пальмового масла.

     
  • 2.3, Онаним (?), 10:39, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Не забудьте прогреть все возможные кешы заведомо протерев все контакты сетевой инфраструкты спиртом.
     
     
  • 3.11, Аноним (11), 12:18, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Медленно взлетает зато далеко летит.
     
     
  • 4.14, Онаним (?), 12:51, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это если памяти на машине бесконечно... простите, хватит. А иначе летает, как тот кирпич.
     
     
  • 5.17, Аноним (7), 13:21, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    512 терабайт оперативы хватит на всех.
     
     
  • 6.21, Онаним (?), 14:51, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > 512 терабайт оперативы хватит на всех.

    Для хеллоуворлда сойдёт. А так надо бы с запасом уже.

     
  • 6.31, Аноним (31), 19:42, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну ещё на десяток следующих версий Electron должно бы хватить.
     
  • 2.33, Илья (??), 23:32, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот что вы имели в виду этим сравнением? Что дельфины могут разломать песочный замок? И при чём тут дельфины вообще?

     
     
  • 3.37, Аноним (37), 20:08, 08/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если речь зашла о питоне для веба, то не дельфины или слоны (они тут сбоку припёка), а синий лещ.
     

  • 1.5, Аноним (5), 11:31, 07/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот те раз... А я всё никак до 2.2 не доберусь, хотя вроде ничего принципиально нового...
     
     
  • 2.8, Аноним (7), 12:04, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Переход с 1.8 до 2.0 был достаточно болезненным (из коробки не завелся пришлось допиливать напильником) Сейчас вангую будет то же самое.
     
     
  • 3.13, Урри (?), 12:41, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И поддержки год. Для чего это, для наколенных поделок, которые через полгода все, даже сам автор, забудут?
     
  • 3.20, Ано Ним (?), 13:32, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Между 1.8 и 2 изменений было в разы больше чем с переходом на 3, судя по списку...
     

  • 1.9, Аноним (11), 12:16, 07/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    В своё время товарищи создатели Джанго рекомендовали Postgre для новый проектов в Джанго Буке.

    If you're not tied to any legacy system and have the freedom to choose a database back-end, we recommend PostgreSQL, which achives a fine balance between cost, features, speed and stability. (The Definitive Guide to Django, p. 15)

    Даже сейчас в Джанго поддерживается больше функций для Postgre чем для других баз данных.

     
     
  • 2.12, th3m3 (ok), 12:33, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что не так то?
     
     
  • 3.19, Аноним (7), 13:30, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    https://books.google.ru/books?id=Gpr7J7-FFmwC&pg=PA11&hl=ru&source=gbs_toc_r&c
     
  • 2.15, Онаним (?), 12:51, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот именно по той причине трогать это оно настоятельно не хочется.
     
     
  • 3.22, IRASoldier_registered (ok), 15:21, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что не так, по-твоему, с Postgre?
     
     
  • 4.47, Онаним (?), 08:54, 14/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > А что не так, по-твоему, с Postgre?

    Всё. Задолбался объяснять. Унылый угрёбищный дизайн из прошлого тысячелетия. Если хочется энтерпрайза - берём кровавый энтерпрайз. Если хочется шустро и молодёжно - MySQL. А постгря - гибрид ужа с ежом, неудачный мичуринский эксперимент.

     
  • 3.35, пох. (?), 14:57, 08/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а ты поставь где-нибудь поближе к уху джанк с sqlite - это вполне поддерживаемая и одобряемая конфигурация - формально, во всяком случае.

    Полагаю, неистовый скрежет диска быстро тебе (как и мне когда-то) объяснит, почему так делать не надо, и постгрез с его многоуровневыми оптимизаторами и кэшами - единственный выбор для этого, очень правильно названного,  джанка.

    Потому что, внезапно, наворачивая десять слоев абстракции и изоляции вокруг уже и так достаточно абстрактного и изолированного языка sql - очень удивительно было бы не получить чудовищно неэффективную работу с базой, оптимизированной для совершенно противоположной задачи.

    Но макакам, любителям громоздить фреймворки поверх фреймворков поверх фреймворков - по другому не работается.

     
     
  • 4.46, Онаним (?), 08:52, 14/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > а ты поставь где-нибудь поближе к уху джанк с sqlite - это
    > Полагаю, неистовый скрежет диска быстро тебе (как и мне когда-то) объяснит, почему

    Не, ну ты сказал. Ещё давай из CSV'шников читать.

     
     
  • 5.48, пох. (?), 12:46, 14/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    простите, но вы явно опытный фронтенд-разработчик, да?

    Ведь при чтении из точно такого же файла (внезапно, постгрез хранит базку - в файликах. Точно так же лежащих на той же самой файловой системе, правда, есть ньюансы - файликов там сильно не один, и их внутренняя структура - продукт оверинжиниринга и 90х годов прошлого века при этом) но через шестнадцать прослоек и двенадцать апи - происходит магия?

    А скрипт для веб-сайта, берущий контент из csv файла - у меня, внезапно, есть, и вполне эффективно работает, совершенно не пытаясь прогрызть в диске дыру. Он еще и не виснет раз в три дня, как поделка на джанке.

     

  • 1.25, Аноним (25), 15:58, 07/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Простите за глупый вопрос, а в админке теперь при выборе вложенного элемента все еще значение старое или сделали уже обновление поля? А то просто как-то митапы совещания и т.д. А выглядит все еще как детское поделие.
     
     
  • 2.26, Аноним (26), 16:48, 07/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В админке для вложенных элементов по идее надо в функции update переопределять что ты хочешь там обновить.
     
     
  • 3.42, Аноним (42), 16:52, 10/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я про UI. Там где выбрали элемент в ForeignKey поле открывают отдельное окно, но после выбора элемента он не изменяеьтся в основной форме. Это вот прям сильно расстраивает.
     

  • 1.36, jOKer (ok), 17:10, 08/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пощупал руками новую версию, и ощутил разочарование.

    На самом деле, все эти изменения - это просто асинхронная обертка вокруг синхронной, как и прежде, джанги.

    По большому счету добавилось только возможность написать свое или использовать стандартное asgi-приложение с его мидлварями, а дальше идет запуск через переходник синхронщины. То есть, ничего в сущности и не изменилось, потому что сам фреймворк остался без изменений.

    Так что, если кто-то, - как вот я, - ждал аснхронных вьюх работающих через тредпулэкзекутор с ОРМом (для начала хотя бы так), то этот "кто-то" сильно ошибся. Этого нет.  И в ближайшей перспективе вряд ли будет.

    Сплошное разочарование.

     
     
  • 2.38, VelikiiNehochuha (ok), 22:30, 08/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде как собираются все это реализовать со временем, просто за раз сделать все асинхронным с совместимостью со старым кодом очень трудно, поэтому будут итеративно добавлять асинхронность.
     
  • 2.39, Аноним (39), 22:45, 08/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С начала создали базу для перехода. Теперь будут переписывать компоненты. Об этом говорилось с самого начала. Что они делают не так?
     
     
  • 3.45, jOKer (ok), 17:06, 11/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Они все делают так. Но такими темпами, что когда они свое "все так" запилят, они обнаружат, что aiohttp, fastapi  и прочие легкие асинхронные фреймворки давным-давно запилили свой (асинхронный же) ОРМ и обзавелись админкой - а именно этого им сейчас, ИМХО, недостает, - и большая часть народа уже сидит там, и мигрировать на джангу обратно не испытывает ну никакого желания.

    ЗЫ Кстати, вполне возможно что начинать нужно было с асинхронного ОРМа. Но это так... мое личное ИМХО.

     
     
  • 4.49, Аноним (49), 14:44, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Django использует много бизнес-решений. Если ты обновишь слишком быстро, то будет «ну мы это, как-нибудь потом перейдём». Поэтому нужно развивать, но более плавно.

    Мне очень нравится, что даже синхронная Django идёт в направлении asyncio.

    Лично я чаще пишу на aiohttp/japonito, но у меня соответствующие требования к задачам.

     

  • 1.40, ManulCat (ok), 11:12, 09/12/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "django, flask" - мне больше понравилось aiohttp + pwe. После первых двух - за день освоил и мне как-то больше в душу легло.
     
     
  • 2.41, PnDx (ok), 15:15, 09/12/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ¿pwe — это что?
     
     
  • 3.43, Аноним (42), 16:57, 10/12/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Это очередной высер Python-ястов только что бы не использовать нормальный Docker.
     
  • 2.44, Аноним (42), 16:58, 10/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сравнение разнотипных обьектов Django это фреймворк, а aiohttp библиотека HTTP сервера, а кроме HTTP сервера Вам еще нужно реализовать кучу всего начиная от шаблонизатора, базы данных и верно все это связать в одно решение. Кроме того в Django можно нагенерить админку двумя классами. Так что сравнение между рамой велосипеда и готовым кроссовером экономичного класса.
     
     
  • 3.50, Аноним (49), 14:53, 21/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, у этих фреймворков разные задачи.
    Во-вторых, использование шаблонизатора в aiohttp возможно и можете использовать, какой вам нравится, даже от Django.
    В-третьих, если вам так очень нужен ORM, то можно использовать часть SQLALchemy с обёртками для PgSQL и MySQL (aiopg и aiomysql)

    Если не очень нужен ORM (что чаще всего и бывает на самом деле, просто ну очень лениво написать пару SQL-statements), то можно использовать очень быстрый asyncpg. Он не может быть использован ни в SQLAlchemy, ни в Django (там обычно не нужна такая скорость и гибкость обработки данных)

    PS; даже в Spring Framework сейчас общая тенденция отказываться от ORM в кровавым Энтерпрайзе

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру