Title
Python developer articles - Статьи
Go Home
Category
Description
Address
Phone Number
+1 609-831-2326 (US) | Message me
Site Icon
Python developer articles - Статьи
Tags
Page Views
0
Share
Update Time
2022-05-03 01:16:45

"I love Python developer articles - Статьи"

www.lexev.org VS www.gqak.com

2022-05-03 01:16:45

lexev.org - записи python разработчика Контакты CV Sublime Text и Language Server Protocol Language Server Protocol (LSP)Language Server Protocol (LSP) - протокол для общения между IDE и языковым сервером. Сервер предоставляет такие функции, как автокомплит, переход к функции (goto) и прочее. Т.е. когда IDE нужно показать автокомплит на языке, скажем, python - происходит запрос к специальному серверу. В ответе возвращаются необходимые данные, которые IDE уже может отобразить. Радует то, что это инициатива крупной компании - Microsoft.Но в чем же смысл, ведь в большинстве IDE это итак уже работает ... python3.x sublime Добавлено 2019-02-19 Комментарии Читать далее Ловушка при подсчете связанных объектов в Django Задача: для каждого объекта подсчитать количество связанных объектов, удовлетворяющих определенному условию.Пример:class Category(models.Model): title = models.CharField(max_length=50)class Article(models.Model): title = models.CharField(max_length=50) category = models.ForeignKey(Category) approved_at = models.DateTimeField(blank=True, null=True)Видим, что поле Article.approved_at хранит время одобрения статьи, причем оно может быть пустым (т.е. NULL в базе данных).Создадим тестовые данные:from django.utils import timezonec1 = Category.objects.create(title='c1 ... database django sql Добавлено 2017-01-14 Комментарии Читать далее Django: сигнал или метод модели? Когда нужно написать какой-либо функционал, который должен быть выполнен при сохранении django модели, у меня всегда возникал вопрос - где его лучше реализовать. В сигнале или в методе save() модели? Давайте разберемся, что и в каких ситуациях более удобно.В каких случаях использовать методы модели save(), delete()?На мой взгляд, использовать методы уместно, когда функционал касается исключительно данной модели. Например, при сохранении модели нужно заполнить какое-то поле автоматически, исходя из совокупности данных других полей.Часто приводят ... django signal Добавлено 2016-08-01 Комментарии Читать далее Пробуем JSON в Django и PostgreSQL (и сравниваем с MongoDB) В Django 1.9 будет добавлено поле JSONField, его можно использовать с базой данных PostgreSQL >= 9.4. Давайте попробуем с ним поработать и оценить, насколько оно удобно.На данный момент доступна альфа версия django 1.9, финальная запланирована на декабрь 2015.Установить альфа версию можно так:pip install --pre djangoИтак представим, что у нас есть интернет магазин, в котором мы предлагаем товары разных типов. Например, ноутбуки и футболки. Очевидно, что у таких товаров будет ... database django mongodb postgresql sql Добавлено 2015-09-30 Комментарии Читать далее OAuth и django rest framework Тема избитая, но мне не удалось найти готового решения, которое полностью бы меня устроило. Поэтому пишу сам :).Итак, у нас есть "одностраничный" веб сайт, который общается с бекендом посредством REST API. Клиентская часть может быть написана с помощью ember, angularjs или чего-то подобного. Бекенд - django rest framework (DRF). И есть тривиальная задача - добавить вход через социальные сети (OAuth протокол).Как бы это выглядело в случае обычного (олд-скульного) сайта? Пользователь нажимает логин, открывается страница социальной сети ... api django oauth Добавлено 2015-07-18 Комментарии Читать далее Tornado и pgettext Недавно (26 мая 2015 года) вышел релиз tornado 4.2. В него вошли разные дополнения, пожалуй основные из них - модули tornado.locks и tornado.queues. Они перекочевали из пакета Toro, подробное описание процесса от Jesse Jiryu Davis в его блоге.Здесь же хочу рассказать о другой маленькой функции, которая была добавлена с моей помощью - pgettext.Она может быть полезна, когда вы создаете перевод для неоднозначных строк. Допустим есть слово "bat", которое нужно вывести либо на ... i18n tornado Добавлено 2015-06-05 Комментарии Читать далее OAuth по шагам Gist OAuth протокол бывает двух версий: 1.0 и 2.0.Большинство сервисов сегодня используют версию 2.0, вероятно потому чтоее проще реализовать. Так же версию 2.0 можно относительно безопасно использовать вstandalone-приложениях (те, которые без сервера).Для понимания протоколов очень полезно взглянуть на их реализацию.Тут я приведу несколько скриптов, которые общаются с OAuth-провайдерами разных версий.Т.е. все скрипты реализуют функционал клиента (не сервера).Используются только стандартные python библиотеки.Вот почему ... api oauth security Добавлено 2015-05-16 Комментарии Читать далее Python tips & tricks Недавно прочитал книгу Марка Лутца "Learning Python", 5-ое издание. Привожу список самых интересных фишек (по моему мнению) оттуда, что-то вроде конспекта.генерация set'a:{x for x in [1,2]}set(x for x in [1,2])assert set(x for x in [1,2]) == {x for x in [1,2]}генерация dict'а:{x:x**2 for x in [1,2]}dict((x, x**2) for x in [1,2])assert {x:x**2 ... python2.x python3.x Добавлено 2015-04-30 Комментарии Читать далее Слушаем wifi с помощью wireshark Всегда знал, что можно посмотреть сетевые пакеты, которые передаются по wifi сети. Но на практике этого не делал (на работе анализировал сетевые пакеты, но то был не HTTP протокол). Решил восполнить этот пробел, ведь это интересно и полезно. Более стройно выстраивается понимание протоколов TCP-IP и HTTP. Видно, как летят наши пароли и сессии, после такого опыта поневоле начинаешь относиться к безопасности сайта с большим трепетом.Трафик будем слушать с помощью программы Wireshark. Есть много утилит ... fun security Добавлено 2015-04-17 Комментарии Читать далее Отладка SQL в django тестах В django тестах можно замерять количество сделанных SQL запросов:def test_home(self): with self.assertNumQueries(1): response = self.client.get('/') self.assertEqual(response.status_code, 200)Если код в контексте assertNumQueries сделает иное количество обращений к БД, чем ожидается (здесь 1), то тест выдает ошибку. Но когда такой тест не проходит, бывает трудно определить лишний отправленный запрос. Для отладки такого случая удобно вывести в консоль отправленные SQL запросы. Далее опишу, как этого добиться.Кстати, если вы ... database django logging sql Добавлено 2015-03-04 Комментарии Читать далее Tornado i18n and l10n Статья о том, что такое i18n и i10n и как это реализовать в приложении на tornado. Получилось довольно много букв, но хотелось рассказать доступно обо всем процессе. Сама пошаговая инструкция - во второй половине статьи.Общие определенияi18ni18n - сокращение от internationalization. Так называют процесс поддержки разных языков в приложении. Это не сам перевод, а именно техническая составляющая проекта, которая позволяет отображать текст на разных языках, в зависимости от предпочтений пользователя. Обычно реализацией занимается разработчик.l10n ... async i18n tornado Добавлено 2015-01-31 Комментарии Читать далее Timestamp и ObjectId в mongoDB У каждой записи в mongoDB есть поле _id, которое должно быть уникальным в коллекции.По умолчанию тип этого поля - ObjectId, и оно присваивается автоматически, если поле не заполнено при сохранении.Давайте рассмотрим, что из себя представляет тип ObjectId. Это 12 байт, которые состоят из:4 байта, содержащие количество секунд с начала Unix эпохи3 байта, содержащие идентификатор устройства2 байта, содержащие id процесса3 байта, содержащие счетчик, который стартует со случайного значенияКак видим, первые ... database mongodb pymongo Добавлено 2015-01-18 Комментарии Читать далее Задание url для обработчиков Tornado В tornado, для привязки обработчиков к url'ам, можно передать список из кортежей (url regex, handler) при инициализации приложения:application = tornado.web.Application([ (r"/", MainHandler), (r"/some/path/page/(?P[0-9]+)$", PageHandler),])Но не секрет, что гораздо удобнее использовать обертку tornado.web.url, которая позволяет присваивать имена для путей (похожа на django'вский url).Однако, в паре рабочих проектах, с которыми приходилось работать, эта обертка не использовалась. А так же в некоторых примерах из ... tornado Добавлено 2014-12-15 Комментарии Читать далее Подключение celery к django Для подключения celery к новому проекту так или иначе приходится подглядывать в предыдущие, чтобы вспомнить необходимые шаги: какие настройки задавать, как запускать, как останавливать и т.д.Хочу собрать все в одном месте.Что нужно получить в итогеПосредством celery добавить возможность django проекту выполнять задачи в фоне, чтобы не загружать текущий python процесс. Пример таких задач: отправка емейлов, работа со сторонним апи, долгие вычисления и т.д.В качестве брокера используем redis.В админке ... async django Добавлено 2014-11-02 Комментарии Читать далее Вложенные SQL запросы в Django Вы знали, что Django ORM умеет делать вложенные SQL запросы? К своему стыду я узнал это не так давно.Допустим, у нас есть такие модели питомника (Nursery) и питомца (Pet):class Nursery(models.Model): title = models.CharField(max_length=50)class Pet(models.Model): name = models.CharField(max_length=50) nursery = models.ForeignKey(Nursery, related_name='pets')Нам нужно получить всех питомцев (Pet), которые находятся в заданных питомниках (Nursery). Например в питомниках, title который начинается с "Moscow":nurseries ... database django sql Добавлено 2014-09-09 Комментарии Читать далее Бесплатная футболка от New Relic New Relic - сервис для мониторинга веб приложения. Позволяет в подробных деталях смотреть статистику работы, где программа тратит больше всего времени, как часто обращается к базе данных и много всего прочего. Для описания этого прекрасного сервиса следует уделить отдельный пост. Здесь же хочу рассказать о другом - как я получил бесплатную футболку от New Relic.На самом деле, для этого нужно лишь зарегистрироваться и настроить New Relic на работающем сайте. Как и сказано в их предложении.Конечно ... free fun Добавлено 2014-05-29 Комментарии Читать далее Внешний url для localhost сервера Есть замечательная тулза под названием ngrok. Она позволяет привязать URL для вашего localhost сервера!Например, вы запускаете тестовый сервер django у себя на компьютере:python manage.py runserverи этот сервер будет доступен через внешний URL.Для чего?Как минимум есть такие задачи:продемонстрировать проект заказчикупроверить интеграцию вашего сайта с платежной системой, которая отправляет уведомления. Например paypal, где для получения IPN сообщения нужен работающий URL, даже в sandboxКакСкачиваем ngrok отсюдаРаспаковываем скаченный ... deploy Добавлено 2014-05-09 Комментарии Читать далее Отправка писем в django проекте с помощью сервиса mandrill Gist Отправлять email сообщения с сервера можно просто по SMTP протоколу. Но есть другой способ - через специальные сервисы рассылки. Про один такой, mandrill.com, я немного расскажу.Преимущества относительно SMTPПодробная статистика отправленных писем. Сколько писем отправлено, кому, когда. Сколько писем открыли, какие ссылки нажимали.Шаблоны писем. Их можно редактировать через сервис mandrill, т.о. образом не нужно ничего придумывать в админке django. В шаблоне можно использовать переменные, задавать тему письма, даже адрес отправителя. Из ... api django email free Добавлено 2014-03-18 Комментарии Читать далее Что нужно знать об индексах в mongodb Недавно закончил курс "M101P: MongoDB for Developers" (он периодически повторяется, например следующий стартует в апреле).В процессе прохождения натолкнулся на некоторые интересные моменты.1. Выбор индекса для запроса.Допустим у нас коллекция с такими данными:{ "_id" : ..., "a" : 81810, "b" : 97482, "c" : 44288 }{ "_id" : ..., "a" : 11734, "b" : 27893, "c" : 19485 }// и т.д.Всего 99999 объектов. У коллекции есть индексы:db.foo.ensureIndex({a: 1, b: 1, c: 1})db.foo.ensureIndex({c: -1})Вопрос: какой ... database mongodb Добавлено 2014-03-07 Комментарии Читать далее Асинхронный Bitcoin RPC клиент на python Для работы с Bitcoin RPC на python'е есть библиотека Python-BitcoinRPC.Но недавно мне понадобилось обратиться к API из приложения на tornado. Указанная библиотека работает в синхронном, т.е. блокирующем режиме. Для торнадо было бы намного лучше использовать асинхронную версию. Готовой найти не удалось, поэтому написал свой форк - асинхронный, который использует торнадовский AsyncHTTPClient: https://github.com/st4lk/python-bitcoinrpc-tornado.Пример (выводит текущее количество блоков в сети Bitcoin):from bitcoinrpc_async.authproxy import AsyncAuthServiceProxyfrom tornado import ioloop ... api async bitcoin tornado Добавлено 2014-01-30 Комментарии Читать далее 1 2 › » Тэги: django 17 python2.x 10 database 8 api 6 sql 6 python3.x 5 tornado 5 async 4 free 4 mongodb 4 i18n 3 logging 3 sublime 3 deploy 2 fun 2 oauth 2 security 2 unicode 2 bitcoin 1 email 1 java 1 openshift 1 postgresql 1 pymongo 1 signal 1 rss feed Сайт построен используя Python 2.7.14 Django 1.4.22 Bootstrap Алексей Евсеев