Иногда требуются ресурсоемкие вычисления, и узким местом становится именно питон. Тогда на помощь приходит код написанный на C/С++
К счастью питон-модули пишутся довольно просто, и документация с примерами есть на официальном сайте. Никакой америки я сейчас не открою, и если вы когда-нибудь сталкивались с написанием модуля для питона — далее можно не читать — все довольно примитивно.
PyCharm 2.7
Тихо и незаметно вышел PyCharm 2.7
Добавилось:
- Проверка на PEP8
- Поддержка Django 1.5
- Вроде как допилина проверка синтаксиса LESS
- Допилен рефакторинг
Ну и еще кое-что: www.jetbrains.com
А теперь субъективно:
Django: POST
Тут все предельно просто, параметры POST-запроса парсятся и услужливо складываются в словарь POST объекта request, который всегда передается первым параметром в любой view.
Пример.
Форма
<form method="POST" action="/hello"> <label>Name:</label><input type="text" name="name" /> <input type="submit" /> </form> |
view обрабатывающий URL /hello:
@csrf_exempt # глушилка защиты CSRF, об этом ниже def hello(request): text = "" if "name" in request.POST: text = u"Параметр POST передан: привет %s" % request.POST['name'] else: text = u"Параметр POST не передан" return HttpResponse(text) |
Триколор HD и GS-8306
Плюсов (кроме HD, которое все же работает) нет.
Недостатки в огромных количествах:
- Реклама при переключении между каналами, отключить нельзя. Страшная, стыдно перед телевизором, за то, что заставляю его показывать это. Про себя молчу.
- Светодиод в режиме ожидания ночью освещает комнату лучше, чем солнце днем. Можно было бы книжки читать, если бы он при этом еще не мерцал.
- Смотреть можно только триколор, ручного поиска каналов нет. А еще «ресивером» называют.
- Зависает. Помогает только выключить-подождать-включить из розетки.
- Тормозит. Регулировка громкости не сразу отзывается. Про остальное молчу
- Функционал на нуле. Даже каналы по собственым предпочтениям выстроить нельзя. («Избранное» после обновления списка каналов обнуляется)
- И самое главное: через месяц редкого использования отгорел HDMI. Теперь и HD нет. Причем не только у меня.
За 10к можно было бы купить приличный ресивер, Dr.hd f15 с DRE модулем, например.
Это самая глупая трата денег в моей жизни. Даже когда кошелек (с порядком большей суммой) потерял — сожалел много меньше.
Django. Передача GET-параметров
В продолжении Личное: Django. От простого
Научим приложение main здороваться с конкретным человеком. Для этого нужно в представление сообщить имя этого человека: модифицируем наше представление:
def hello(Response, name='World'): return HttpResponse("Hello %s!" %name) |
Теперь функция представления принимает один необязательный аргумент name
Добавим привязку в urls.py
url(r'^(\w+)$', 'main.views.hello'), |
Подробнее с регулярными выражениями можно познакомиться в документации на Python http://docs.python.org/2/library/re.html
В случае совпадения URL с данным регулярным выражением, Django вытащит группу указанную в скобках \w+ в качестве второго параметра функции представления: например запрос
http://127.0.0.1:8000/User
приведет к вызову
hello(Request,"User") |
И страничка поздоровается c User:
Hello User!
Django. От простого
В продолжении Django. Структура проекта.
Итак проект создан — и уже работает, можно запустить development сервер и посмотреть, что получилось:
$ ./manage.py runserver Validating models... 0 errors found Django version 1.4.3, using settings 'first.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Здесь видно что сервер запустился на loopback интерфейсе на порту 8000. Использование loopback-интерфейса по-умолчанию кроет в себе некий смысл:
development-сервер можно (и нужно) использовать только для разработки проекта.
Читать далее
Django. Структура проекта.
Все нижеописанное отностится к версии django-1.4, в 1.3 и ниже есть некоторые отличия.
Основная причина недоумения и непонимания людей всю жизнь видевших только PHP фреймворки в как раз в структуре проекта и принципах работы фреймворка Django. Я надеюсь после прочтения туман рассеется и ориентироваться станет много проще.
Читать далее
Установка Python + Django под Windows
Писалось для того, кто не может поставить питон под Windows, отсюда и
Минимум, что потребуется — это сам python и django. Python будем использовать 2.7, а django 1.4.3 (последняя стабильная на данный момент), впрочем не думаю, что установка других версий будет в корне другая.
Итак python: тут все просто — идем на python.org/getit и скачиваем Python 2.7.X Windows Installer (или X86-64 если установлена x64 система)
Читать далее
wvPDF и русский язык
Для полного щастья поставить пакеты texlive (не только -base), texlive-lang-cyrillic
и подредактировать файл
/usr/share/wv/wvLaTeX.xml
изменив в нем
\usepackage[latin1]{inputenc}
на
\usepackage[utf8]{inputenc} \usepackage[russian]{babel}
После чего конвертирование начинает работать. Но адекватности ожидать все равно не приходится
SPA2102 FAX
Звонки ходят отлично, уже который год. Решил доковырять факс (не пользуюсь в принципе, но ведь надо чтобы работало)
Пробую — ReceiveFax на астериске через Linksys spa2102 работает отлично, а вот обратно (SendFax) не идет.
в логах ошибок нет, есть вот такое:
NOTICE[3972]: chan_sip.c:9188 process_sdp: No compatible codecs, not accepting this offer!
Причем, на тот же Zoiper факсы отправляются.
Читать далее