Это статья из лекций http://lectureswww.readthedocs.io/999.additions/texteditors/vscode.html
Это статья из лекций http://lectureswww.readthedocs.io/6.www.sync/3.framework/pyramid/5.1.rest.html
Это статья из лекций http://lectureswww.readthedocs.io/6.www.sync/3.framework/pyramid/5.urldispatch.html
Это статья из лекций http://lectureswww.readthedocs.io/999.additions/python/asyncio-decorator.html
Все уже слышали про новый pyhton версии 3.5 (https://docs.python.org/3/whatsnew/3.5.html). Я постараюсь описать как начать им пользоваться в вашем виртуальном окружении.
Идея непрерывной интеграции заключается в том, что при любом изменении проекта он пересобирается в условиях приближенных к реальной эксплуатации и каждый раз запускает тесты. Это позволяет моментально отловить баги и исправить их не отходя от кассы, пока ещё помнишь что понаписал.
Для простых CRUD
действий с БД, можно воспользоваться модулем
action
из sacrud. Это немного сократит код и добавит
некоторой универсальности в ПО со сложной логикой.
Новая версия sacrud 0.0.3
. В ней поправлены некоторые баги,
добавлены нескучные обои элементы дизайна в расширении для
Pyramid
и создан отдельный репозитарий с примерами работы разных типов
полей (pyramid_sacrud_example). Pyramid_sacrud_example работает только с
Postgres потому что включает в себя примеры полей специфичных именно для этой
БД (таких как hstore
).
Приведу просто пример триггера на plpython
который использует данные из
поля hstore
:
Запилил Yet another CRUD интерфейс для SQLAlchemy. По сути это аналог
Django админки или FormAlchemy, но ОЧЕНЬ сильно упрощенный, ничего
лишнего. Есть поддержка большинства полей + кастомные поля типа файл (для
загрузки файлов, изображений) и GUID
. Довольно просто подключить к
Pyramid проекту и сразу начать работать по адресу
http://localhost:6543/sacrud
Понадобилось мне тут создать флаг в цикле, который можно использовать где нибудь потом в шаблоне. По логике все должно выглядеть примерно так:
Иногда в шаблоне нужно зафигачить какую-нибудь рыбу типа "Lorem ipsum dolor
sit amet"
, часто в цикле итд. Для этого существует функция lipsum().
У меня есть дополнение к pyramid которое я включаю почти в каждый проект при
помощи includeme
(include()
). Приложение
это дает мне простой CRUD
интерфейс с Jinja шаблонами малой кровью.
Что позволяет избавиться от монстра FormAlchemy. Естественно каждый
проект имеет свое название поэтому пришлось применить немного магии что бы
создать универсальный механизм получения DBSession
в своем подключаемом
дополнении.
У Яндекс Карт хороший геокодинг и есть API, но нет автодополнение поисковой строки (как в гугле). У гугла плохой геокодинг (для России) но есть автодополнение. Более подробно можно прочитать например здесь. Парадокс какой-то. Я написал простой модуль для вычленения данных через API при помощи питона. Это очень удобно использовать в AJAX запросах. Пример использования здесь (OpenStreetMap, Геокодирование и автодополнение адреса в строке поиска (как у гугла) с помощью Яндекс API :)). Код для изучения/исправления здесь https://github.com/uralbash/pyandexmap.
Я периодически использую свои скрипты в разных местах, для того что бы не
копипастить их постоянно и следить за обновлением удобно добавить их в
https://pypi.python.org и устанавливать/обновлять через pip install
. Для
этого необходимо подготовить наш модуль.
В питоне пустые значения возвращаются как None
. Поэтому в шаблонах
Jinja вместо пустых значений отображаются None
. Что бы поправить это
нужно изменить метод finalize
. Пример из google groups:
Иногда необходимо написать скрипт который выполняется из консоли и использует окружение проекта на Pylons. Копипастю простой пример с pylonshq. Так-как там есть привычка периодически удалять информацию.
Для работы с ssh в питоновских скриптах идеально подходит модуль paramiko.
Ошибка в FormAlchemy типа KeyError: "Key not found:
u'Task--super_task_id'"
лечится обновлением:
При установке psycopg в virtualenv может возникнуть ошибка:
В некоторых случаях на rrd графиках появляются пики, как например после перезагрузки сетевой карты:
Продолжение статьи готовим Pylons + WTForms. Рассмотрим как создать свой класс для валидации. Здесь можно найти стандартные валидаторы http://wtforms.simplecodes.com/docs/0.6/validators.html
Плеер который в Линуксе нормально отображает кодировки и читает на ура
lossless
, написан на python, работает в консоле. Интерфейс как в
mc - очень удобно музыку перемещать + поддержка мышки.
http://peyote.sourceforge.net/about.rus.html
Рассмотрим как можно мониторить температуру при помощи сервера. Алгоритм довольно простой: подключаем датчик температуры к компу, пишем скрипт который снимает данные с датчика, записываем данные и отдаем по запросу пользователю. Результат будет выглядеть так: