setuptools. dist. Создание пакета

Posted by & filed under python.

Создание из .py исходников пакета python setup.py dist Кастомизация сборщика пакета: использование параметров коммандной строки python setup.py dist —user=myusername —password=mypassword —with-flag Изменнения в setup.py # -*- coding: utf-8 -*- import os from setuptools import setup, find_packages from setuptools.command.sdist import sdist class CustomSdistCommand(sdist): «»»Customized setuptools sdist command»»» user_options = sdist.user_options + [ (‘user=’, None, ‘Svn user’),… Read more »

Создание пустого HttpRequest в Django

Posted by & filed under django.

Задача: создать пустой HttpRequest (или не пустой 🙂 ) Решение: Найдено на просторах инета: from django.test import RequestFactory request_factory = RequestFactory() request = request_factory.post(‘/fake-path’, data={‘name’: u’Waldo’}) Оригинал: http://tech.novapost.fr/django-unit-test-your-views-en.html

Compare two dicts in python

Posted by & filed under python.

Божественный и простой способ сравнения словарей: a={‘a’: 1, ‘b’: 2 } b={‘b’: 2, ‘a’: 1 } print(cmp(a,b))

Virtualenv: Error loading MySQLdb module: No module named MySQLdb

Posted by & filed under python.

Проблема в виртуальном окружении: Error loading MySQLdb module: No module named MySQLdb Решение: ставим сначала в общую систему : apt-get install libmysqlclient-devapt-get install python-dev Потом должно без проблем поставиться в виртуальную среду: pip install mysql-python

Django, ModelForm and upload file (Django, ModelForm и загрузка файла)

Posted by & filed under django, python.

Не очевидная для меня вещь с загрузкой файла и класса наследника ModelForm, нужно указать files=request.FILES Иначе появлялась ошибка This field is required. Хотя оно там было заполнено. рабочий пример: if request.POST: pcf=PhotoCandidateForm(request.POST,files=request.FILES) if pcf.is_valid(): pcf.save() message=’Data is saved. Thanks’ Сумбурно получилось, но так как пишу для себя, то должен сам себя понять

Django, South, cоздание первой миграции

Posted by & filed under python.

Cоздание первой миграции в South: python ./manage.py schemamigration foo —initialpython ./manage.py migrate foo —fake После добавления нового поля в модель foo python ./manage.py schemamigration foo —auto

Python, работа с письмами (SMTP) локально

Posted by & filed under python.

Для разработки встал вопрос, как протестировать работу отправки писем и при этом не отправлять тысячи писем, в python есть готовое решение python -m smtpd -n -c DebuggingServer localhost:1025 Запускаем в терминале, указываем хост и порт в своих скриптах и работает с тестовым почтовым сервером

new-line character seen in unquoted field — do you need to open the file in universal-newline mode?

Posted by & filed under python.

При работе с CSV файлом возникла такая ошибка: new-line character seen in unquoted field — do you need to open the file in universal-newline mode? Решение оказалось простым нужно было вместо «rb» написать «rU». Правильное чтение csv файла: import csv reader = csv.reader(open(«myfile.csv», «rU»),delimiter=’,’) for row in reader: print row

Djnago-CMS: Добавление nofollow ко всем внешним ссылкам

Posted by & filed under python.

Задача: Сделать добавление nofollow ко всем внешним ссылкам. Решение: Сделаем через middleware class NofollowLinkMiddleware(object): »’ Adds nofolow to external links»’ def __init__(self): self.extlinks = re.compile(r»'<a (?P[^>]*http.?://)»’) def process_response(self, request, response): if («text» in response[‘Content-Type’]): response.content = self.extlinks.sub(‘<a rel=»nofollow» g’,response.content) return response else: return response