Недавно запустили сервис по бронированию ресторанов ПанГурман. Внутри это более-менее типичный django-сайт. Попробую рассказать, как там что устроено (с картинками). В статье не будет ничего супер-хитрого, но, надеюсь, кому-нибудь пара трюков или идей покажутся полезными и как-то упростят жизнь.
Рубрика «django» - 33
Рецепты от ПанГурмана
2012-04-24 в 10:21, admin, рубрики: ajax, django, тесты, метки: ajax, Django, тестыНелегкий выбор Python или PHP. А может и то и другое?
2012-04-23 в 7:33, admin, рубрики: django, php, python, Программирование, метки: Django, PHP, pythonНесмотря на название, в данной статье не будет «холиварных» высказываний, обзоров достоинств или недостатков языков. По большей части данная статья носит философский, исключительно субъективный характер с небольшой примесью личного опыта.
Выбор на самом деле действительно нелегкий. Изначально все проекты мы разрабатывали на PHP. Но со временем накапливалось недовольство данным языком. По большому счету не устраивала скорость разработки и комфортность работы с ним. Даже элементарно на уровне синтаксиса языка, приходится набирать много лишнего. Эти $ перед переменными, -> для доступа к методу или члену класса, и множество мелочей, которые раздражали, а иногда и бесили.
Формально, даже трудно передать, чем данный язык не устраивал. На любое утверждение или пример, найдется более грамотный специалист и поклонник PHP, который возразит: что надо делать не так, а вот так и все нормально будет, или вообще что это не проблема, а наоборот достоинство. Просто скажу так — этот язык перестал нравиться исключительно подсознательно, вот неприятно на нем писать и все. Не приносит работа удовлетворение.
Читать полностью »
Оптимизация flatpages проекта на django под минимальные системные требования. Статья-шутка
2012-04-21 в 13:02, admin, рубрики: django, memcached, nginx, uwsgi, Веб-разработка, метки: Django, memcached, nginx, uwsgi
Под катом много букв, но не беспокойтесь — вы всех их знаете.
Читать полностью »
Введение в SELinux: модификация политики targeted для сторонних веб-приложений
2012-04-19 в 13:15, admin, рубрики: CentOS, django, Fedora, httpd, mod_wsgi, redhat, selinux, Блог компании Positive Technologies, Веб-разработка, информационная безопасность, метки: CentOS, Django, Fedora, httpd, mod_wsgi, redhat, selinux Привет, коллеги!
Многие из нас занимаются настройкой рабочих серверов для веб-проектов. Я не буду рассказывать о том, как настроить Apache или Nginx: вы знаете об этом больше меня. Но один важный аспект создания frontend-серверов остается неосвещенным: это настройки подсистем безопасности. «Отключите SELinux», — вот стандартная рекомендация большинства любительских руководств. Мне кажется, что это поспешное решение, ибо процесс настройки подсистем безопасности в режиме «мягкой» политики чаще всего весьма тривиален.
Сегодня я расскажу вам о некоторых методах настройки подсистемы безопасности SELinux, применяемой в семействе операционных систем Red Hat (CentOS). В качестве примера мы настроим связку для веб-сервера Apache + mod_wsgi + Django + ZEO на CentOS версии 5.8.
GeoIP и Django
2012-04-19 в 10:18, admin, рубрики: django, geoip, ipgeobase, метки: Django, geoip, ipgeobaseВебразработчики частенько сталкиваются с классической задачей определения местоположения пользователя по его IP-адресу. Существует множество различных решений, например на основе мировой базы Maxmind Geolite или российской IpgeoBase. Все они обладают достаточно низкуровневыми API, ну оно и понятно: на входе айпишник, на выходе страна, либо город и, если повезёт, ещё какая-нибудь полезная информация.
У всех сайтов с GeoIP, которые мы запускали, есть общая черта: они не только нуждаются в простой геолокации, необходимо также выводить различный контент на сайте в зависимости от месторасположения пользователя. Чтобы упростить для себя эту задчу мы написали небольшую батарейку django-geoip, вдохновившись приложением django-ipgeobase.
Читать полностью »
Вышел PyCharm 2.5 с поддержкой удаленных интерпретаторов, улучшенным virtualenv, SVN 1.7 и пр
2012-04-16 в 17:36, admin, рубрики: django, environment, interpreter, jetbrains, pycharm, python, svn, virtualenv, метки: Django, environment, interpreter, jetbrains, pycharm, python, svn, virtualenv В пятницу, не смотря, что она была еще и 13 апреля, команда создающая PyCharm, передовую IDE для Python от JetBrains, выпустила очередное обновление своего продукта — версию 2.5.
В этот релиз вошли важные нововведения по работе с Python-окружением и не только:
Читать полностью »
Django Gmap v3 Widget — геолокация с поиском, сохранение координат и адреса в JSONField
2012-04-05 в 7:04, admin, рубрики: django, python, метки: Django, pythonПривет. Была поставлена задача реализовать геолокацию (google maps v3) для пользователей в одном из проектов на django, хочу поделиться своим решением.
Необходимый функционал:
- Вывод карты с маркером текущего положения, возможность перемещать маркер (dragged), ставить по click событию
- Поиск по адресу (autocomplete)
- Сохранение как координат, так и самого адреса (если он имеет место быть)
ImageValue в django-dbsettings
2012-04-02 в 23:18, admin, рубрики: django, python, метки: Django, pythonДобрый день.
Часто бывает нужно иметь пользовательские (административные) настройки сайта, которые не могут быть определены в settings.py по двум простым причинам: настройки из settings.py не могут быть изменены без перезапуска сервера; и — самое главное — они могут быть изменены только программистом.
Модуль django-dbsettings (бывш. django-values) призван избавить Вас от этих ограничений: он предоставляет механизм хранения пользовательских настроек в базе данных, а также удобные виды для их редактирования.
И вроде бы все отлично… НО! Что же делать, если в качестве настройки нужна будет картинка: например, логотип сайта? Как выяснилось, django-dbsettings не поддерживает такого типа значений.
О том, как я добавлял поддержку ImageValue в django-dbsettings, я и собираюсь поведать.
Модуль Mock: макеты-пустышки в тестировании
2012-04-02 в 7:37, admin, рубрики: django, django framework, mock, python, tdd, тестирование, метки: django framework, mock, python, tdd, unit-testing, тестированиеMock на английском значит «имитация», «подделка». Модуль с таким названием помогает сильно упростить тесты модулей на Питоне.
Принцип его работы простой: если нужно тестировать функцию, то всё, что не относится к ней самой (например, чтение с диска или из сети), можно подменить макетами-пустышками. При этом тестируемые функции не нужно адаптировать для тестов: Mock подменяет объекты в других модулях, даже если код не принимает их в виде параметров. То есть, тестировать можно вообще без адаптации под тесты.
Такое поведение — уже не надувные ракетные установки, а целая надувная земля, вокруг которой могут летать испытуемые ракеты и самолёты.
Kyiv.py #6. Небольшой имхо-отчёт о встрече
2012-04-01 в 19:25, admin, рубрики: ciklum, django, python, метки: ciklum, Django, python
Несмотря на дату, мероприятие оказалось не шуткой, хотя я ехал с некоторым недоверием :) 6-й KyivPy действительно состоялся и, в целом, прошёл удачно. Практически все доклады были свежи и интересны и практически все докладчики хорошо и доступно излагали свои мысли. Читать полностью »