Янв 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

Окт 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

Сен 23

Конвертация таблиц MySQL в UTF8

Джанга в очередной раз создала кучу таблиц в latin1, а вручную уж очень не хотелось

#!/bin/bash
host="127.0.0.1"
database=$1
pwd="password"
user="user"
tables=`mysql -h $host --user=$user --password=$pwd $database -e "show tables;" -s -r -N`
for table in $tables
do
	echo "Converting $table"
        #тут можно так же optimize table и что там еще
	mysql -h $host --user=$user --password=$pwd $database -e \    
           "alter table $table convert to character set 'utf8';"
done
Июл 29

Qt Http Post и File

Понадобилось загрузить файл из Qt, и хорошо бы чтобы он опознавался со стороны сервера как файл ($_FILES в php или Request.FILES в django)
По Qtшному экземплу не взлетел: все передается, но файл файлом не опознался, так и остался торчать в заголовках POST.
Проблема оказывается действительно есть, решения страшные, вроде ручной сборки заголовков

Continue reading

Июн 29

MySQL-python (MySQLdb) in Mac OS X

Послe установки mysql5 из macports

sudo pip install mysql-python

по-умолчанию ругается на mysql_config not found, если клиент mysql5 установлен из портов, надо просто добавить путь до mysql_config в глобальный PATH, т.е. просто добавить

/opt/local/lib/mysql5/bin/

в файл /etc/paths

Мар 23

1С 7.7 и MySQL

Внезапно!
Потребовалось сделать выгрузку в MySQL, всё решилось быстро и хорошо через ODBC

con = CreateObject("ADODB.Connection");
con_param = "dns=1c";
con.Open(con_param);
con.Execute("insert test set `text`='"+Текст+"';");
РекордСет = СоздатьОбъект("ADODB.Recordset");
РекордСет.ActiveConnection = con; 
РекордСет.Open("select * from test");
Пока РекордСет.EOF = 0 Цикл
	Сообщить(РекордСет.Fields("text").Value);
	РекордСет.MoveNext();                    
КонецЦикла;   
РекордСет.Close();
con.Close();

Устанавливаем MySQL ODBC Connector (x86 обязательно!) и добавляем базу в системный DNS.
На 2008 x64 добавлять через odbcad32.exe (иначе не видно драйвер x86)

Янв 31

Собственный git с преферансом и поэтессами

Заметка скорее для себя, на память…
Цель работы:
Настроить репозиторий git с доступом по протоколу HTTP и web-интерфейсом

Приборы и материалы:

  • сервер с ubuntu (debian)
  • apache2 (будем работать по HTTP)
  • git (ради него все и затевалось)
  • gitweb (веб-морда)

Continue reading

Янв 28

Одной строчкой

Гуляя по просторам интернетов, наткнулся на такую прикольную штуку:

#include <stdio.h>
#include <stdint.h>
 
int main(int argc, char** argv){
 
        uint32_t t;
        for(t=0;;t++)
            putchar((t*3&t>>7)|(t*5&t>>10));
        return 0;
}

gcc main.c
./a.out | aplay и будет круто
Утянуто у VIznut (там можно подсмотреть еще формулы интересные)
послушать онлайн тут

UPD

Можно и на питоне (работает на N9)

import sys
t=0
while 1:
 sys.stdout.write(chr(( (t*3&t>>7)|(t*5&t>>10)) % 256))
 t+=1

запустать так же: python file.py | aplay