• Поговорим о юзернеймах

    • Перевод
    Пару недель назад я выпустил django-registration 2.4.1. Сборки 2.4.x станут последними в версии django-registration 2.x, дальше будут выходить только исправления багов. Основная ветка сейчас готовится к версии 3.0, откуда планируется удалить кучу устаревшего хлама, накопившегося за последнее десятилетие поддержки, и я постараюсь учесть лучшие практики современных приложений Django.

    В ближайшее время напишу подробнее о новой версии, но именно сейчас хочу немного поговорить об обманчиво простой проблеме, с которой приходится иметь дело. Это имена пользователей. Да, я мог бы написать одну из популярных статеек типа «Заблуждения программистов об X», но всё-таки предпочитаю реально объяснить, почему это сложнее, чем кажется, и предложить некоторые советы, как решить проблему. А не просто стебаться без полезного контекста.
    Читать дальше →
  • Авторизация пользователя на вашем сайте через Telegram для Django

    • Tutorial

    Привет! 6 февраля Telegram ввел возможность добавлять на свой сайт виджет для авторизации пользователя через его аккаунт в Telegram. Виджеты по виду реализации на сервере делятся на два вида — обработать данные пользователя «здесь и сейчас» в JavaScript или же перенаправить данные в параметрах URL на указанный адрес. Также саму кнопку можно настроить внешне: изменять размер, закругление углов, отключать и включать фотографию.

    Материал — руководство по настройке авторизации пользователя через Telegram-аккаунт на вашем сайте с помощью пакета django-telegram-login.
    Читать дальше →
  • Telegram бот для сложных квестов

    «В чем же заключается преимущество?» — спросите вы, ну все дело в том, что в нем можно построить логику примерно из следующих выражений:

    – Пользователь на шаге N?
    – Сообщение содержит изображение и смайлик?
    – Текст подходит под регулярное выражению «I am [a-zA-Z]+»?
    – Время получения раньше/позже заданного?
    – Это было нажатие на клавиатуре/обычное сообщение/inline-кнопка?


    Большинство из этих правил могут быть в зависимости друг от друга, но об этом чуть позже.

    Для начала, о чем я хочу рассказать:

    1. Об идее проекта – зачем я это сделал, какие есть аналоги, но почему мне они не нравятся.
    2. Архитектурных решениях, какие возникли трудности, как были решены.
    3. Что получилось в итоге и стоило ли оно того, дальнейшее развитие.
    Читать дальше →
  • Оптимизация стадии инициализации Django

      Если у вас Django проект работает на синхронных воркерах и вы периодически их перезапускаете (например, в gunicorn это опция --max-requests), полезно было бы знать, что по-умолчанию после каждого перезапуска воркера, первый запрос к нему обрабатывается гораздо дольше, чем последующие.


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

      Читать дальше →
      • +19
      • 5,6k
      • 8
    • Python Meetup 14.11.2017: Python в Порту, Aiohttp и снова тесты

        Всем привет! После долгого перерыва, блудная питоновка снова в деле! 14 ноября состаялась очередная встреча минского сообщества Python-разработичков Python Meetup. В этот раз доклады представили:

        — Как я нечаянно стал главным по питону в Порту / Роман Иманкулов, Doist
        — The test which will save your day / Иван Стяжкин, DataRobot
        — Django и Aiohttp / Юлия Темушева, Wargaming
        — Блицдоклад: распространенные ошибки программирования на Python / Юрий Красовский

        Записи выступлений вы найдете под катом.


        Читать дальше →
      • Запускаем django-приложение в Docker на Vagrant под Windows

        • Tutorial
        Привет Хабр! Несколько лет я находился в readonly-режиме на сайте Хабрахабр, изредка оставляя комментарии к чужим публикациям, и за несколько недель до нового года, мне захотелось поменять это положение вещей. Этому послужило мое недавнее задание на работе. А когда начал искать информацию, понял, что ее, как всегда, много, написано запутанно и не то что мне хотелось бы найти. А как быть, если этот человек новичок в этом вопросе? Вот и решил попробовать себя на этом поприще. Сделать туториал, который был бы полезен мне в первую очередь.

        Поехали.
        Читать дальше →
      • Ммм, длинные выходные!
        Самое время просмотреть заказы на Фрилансим.
        Мне повезёт!
        Реклама
      • Обзор литературы по языку Python для начинающих

          Очень часто можно увидеть вопросы на том же тостере: «А какую книгу взять книгу, чтобы выучить технологи Х», и естественно в комментариях идет большое число мнений и большое число различных книг. В данной теме, я сделаю обзор самых популярных книг по Python для начинающих программистов, и дам четкое мнение – нужно ли их читать или нет (субъективно).

          Нужно ли читать книги. Изучая новые технологии, я люблю читать книги по данной технологии, так как я получаю не только сухую информацию, но и субъективное мнение автора по пригодности данных технологий. И в отличие от видео-курсов, мне не приходится ждать, пока автор из себя выдавливает мысль. Да и читаю, я быстро.
          Читать дальше →
        • Как быстро настроить email-аутентификацию в Django

          • Tutorial

          Всем привет!


          Аутентификация пользователей уже давно является типовой задачей. В Django, как и в любом современном вэб-фреймворке, есть отличный механизм аутентификации пользователей.
          Однако, этот механизм по умолчанию использует логин в качестве идентификатора, в то время как все мы уже привыкли использовать для входа email.


          Когда мне понадобилось реализовать этот функционал, оказалось что существует не так много туториалов, особенно на русском, в которых бы описывалось как сделать регистрацию по email, отправку верифицирующего письма, сброс пароля и другие, в общем то вполне обычные вещи.
          Я решил исправить эту несправедливость.


          Django

          Читать дальше →
        • Гибкая система управления доступом на уровне объектов-записей

            Привет всем!


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


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


            Для наиболее дотошных, далее приведены детали устройства системы, ее внутренней логики и порядка обращения с ней.

            Читать дальше →
          • Расширяем и используем Flatpages в Django. Встраиваем CKEditor

            Здравствуйте, сегодня я хотел бы вам рассказать о том, как сделать модель, которая хранит в себе обычные страницы, а не отдельные записи в базе данных (для ListView, TemplateView и тд). Речь пойдёт о том, как расширить и дополнить существующие в Django flatpages. Но хотелось бы рассказать о проблеме, с которой я столкнулся и почему решил поделиться данным функционалом. Часто возникает ситуация, когда в админке для администратора сайта нужно реализовать функционал самой обычной страницы (одна запись в БД – это одна страница, где прописывается url, контент и доп. инфа для конкретной страницы). Тем самым можно создавать прямо из админки новые страницы с любым url и контентом.
            Читать дальше →
          Самое читаемое