Янв 26

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!

Янв 26

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-сервер можно (и нужно) использовать только для разработки проекта.
Continue reading

Янв 26

Django. Структура проекта.

Все нижеописанное отностится к версии django-1.4, в 1.3 и ниже есть некоторые отличия.

Основная причина недоумения и непонимания людей всю жизнь видевших только PHP фреймворки в как раз в структуре проекта и принципах работы фреймворка Django. Я надеюсь после прочтения туман рассеется и ориентироваться станет много проще.
Continue reading

Янв 26

Установка 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 система)
Continue reading

Янв 11

wvPDF и русский язык

Для полного щастья поставить пакеты texlive (не только -base), texlive-lang-cyrillic
и подредактировать файл
/usr/share/wv/wvLaTeX.xml
изменив в нем

\usepackage[latin1]{inputenc}

на

\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

После чего конвертирование начинает работать. Но адекватности ожидать все равно не приходится

Янв 11

SPA2102 FAX

Звонки ходят отлично, уже который год. Решил доковырять факс (не пользуюсь в принципе, но ведь надо чтобы работало)
Пробую — ReceiveFax на астериске через Linksys spa2102 работает отлично, а вот обратно (SendFax) не идет.
в логах ошибок нет, есть вот такое:
NOTICE[3972]: chan_sip.c:9188 process_sdp: No compatible codecs, not accepting this offer!
Причем, на тот же Zoiper факсы отправляются.
Continue reading

Ноя 16

Hate!

Раньше IE был программой для скачивания браузера из интернета, но благодаря Enhanced security configuration, теперь он даже и этого не может.
I HATE MICROSOFT!
А если из проводника уберут FTP?

Окт 06

Двухэтапная авторизация django

Понадобилось сделать подтверждение авторизации через SMS… Подумалось, и придумалось вот что:
Переделывать полностью систему авторизации было влом, да и вообще хотелось бы обойтись «малой кровью», поэтому решено было переделать django’ый декоратор login_required — чтобы не только спрашивал логин и пароль, но и активировал сессии через SMS

Идея будет такая:

  1. В профиле пользователя сохраняем телефон и флаг использования SMS-авторизации.
  2. Переписываем декоратор login_required, чтобы после авторизации отправлял на активацию сессии
  3. Заменяем во всех views from django.contrib.auth.decorators import login_required на наш декоратор
  4. ???
  5. PROFIT!

Использован вот этот SMS-шлюз (ибо как-то уже пробовал и работает)
модуль для работы с онным скачать тут
Continue reading