База знаний и заметок

Сим-сим

Python запустить локальный SMTP сервер для отладки отправки почты

Опубликовал bobathecar в 07:15 25.04.2012
Код: Bash
1
python -m smtpd -n -c DebuggingServer localhost:2025
Сервер запуститься на 2025 порту.
Нет комментариев

Подсчитать в пересечение двух периодов в днях на SQL

Опубликовал bobathecar в 14:13 28.03.2012
Пример приведен для PostgreSQL, но думаю и в других тоже будет работать.
Периоды start1 - end1, start2 - end2.
Пример рассчитан на то, что мы заранее знаем, что периоды пересекаются (start1 <= end2 AND end1 >= start2).
Код: SQL
1
SELECT LEAST(end1, end2) - GREATEST(start1, start2);
Т.е. из более раннего окончания вычитаем более позднее начало, в результате получим интервал в днях пересечения двух периодов.
Нет комментариев

Правильная генерация url в python фреймворке pyramid

Опубликовал bobathecar в 11:49 23.02.2012
При первой настройке проекта на pyramid я столкнулся с тем, что url получаемые через request.route_url содержат в себе порт. Т.к. приложение было за nginx, то порт отличался от 80.

Чтобы избежать нужно добавить проброс http заголовка Host в nginx
Например так.
Код: Bash
1
2
3
4
5
6
7
8
server {                                                                        
    server_name example.dev;                                                    
                                                                                
    location / {                                                                
        proxy_pass http://127.0.01:6543;                                     
        proxy_set_header Host $http_host;                                       
    }                                                                           
}
Нет комментариев

Установка xapian внутри virtualenv

Опубликовал bobathecar в 17:14 13.06.2011
Код: Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
workon myenv

apt-get install zlib1g-dev
apt-get install g++

export VENV=$VIRTUAL_ENV
mkdir $VENV/packages && cd $VENV/packages

curl -O http://oligarchy.co.uk/xapian/1.0.16/xapian-core-1.0.16.tar.gz
curl -O http://oligarchy.co.uk/xapian/1.0.16/xapian-bindings-1.0.16.tar.gz

tar xzvf xapian-core-1.0.16.tar.gz
tar xzvf xapian-bindings-1.0.16.tar.gz

cd $VENV/packages/xapian-core-1.0.16
./configure --prefix=$VENV && make && make install

export LD_LIBRARY_PATH=$VENV/lib

cd $VENV/packages/xapian-bindings-1.0.16
./configure --prefix=$VENV --with-python && make && make install

python -c "import xapian"
Работает и с более новыми версиями xapian.
Код позаимствован отсюда
Нет комментариев

Поиск по началу слова djapian django

Опубликовал bobathecar в 21:28 12.06.2011
Для того, чтобы найти по началу слова (например по "dj" найти и "djagno" и "djapian") нужно при поиске выставить флаг (см. код).

Проверенно для Djapian 2.3
Код: Python
1
2
3
MyModel.indexer.search(q).filter(owner=request.user).flags(
   MyModel.indexer.flags.PARTIAL
)
Нет комментариев