Архив метки: python

Отправка письма почтой с вложениями через Питон

После запуска офисной телефонии, решил ввести своеобразный «контроль качества». Своего рода ОТК, для определения качества общения отвечающих на звонки сотрудников. Так  как звонков относительно много, и слушать все не представляется возможным, хотя в идеальном мире все должно обстоять именно так, было решено слушать хотя бы выборочные записи звонков. Так как под капотом у нашей АТС —  Asterisk, которая аккуратно записывает звонки и кладет их в определенную папку с waw разрешением то дело было за малым автоматизировать отправку пяти выборочных записей на почту нужным людям. Кстати  все это дело будет происходить на «любимой» мною ОСи Windows 10.

Итак накидаем по быстрому простой скрипт: Читать далее

Как создать виртуальное окружение с Python 3 в Ubuntu 14.04?

На старых версиях Linux дистрибутив с которыми часто приходится работать по умолчанию установлена 2-ая ветка Питона. В виду того, что я в своих проектах использую 3-ий python, то полезно иметь возможность установить его у себя. Для этого лучше использовать виртуальное окружение в которое мы и будем ставить необходимый нам Python 3.

Делается всё предельно просто:

virtualenv -p python3 venv
source venv/bin/activate

Если же у вас не стоит покет virtualenv, ставим его ручками: Читать далее

Вернуть файл в FBV Django.

Иногда возникают ситуации когда в ответ на запрос в браузере необходимо вернуть файл. Наверное возможно написать, какое нибудь изящное решение используя CBV (функции основанные на классах), но я решил использовать для этих целей FBV(функции-представления).

Возвращать наша функция будет фай с разрешением .dbf, используя метод HttpResponse. Думаю более подробные комментарии излишни, код простой очень. И я выложу его, может кому нибудь и пригодится.

@login_required
def download_dbf(request, num_dbf):
    #Подключаемся на фтп серваер
    ftp = FTP('muftp.ru')
    ftp.login('user', 'password')
    ftp.cwd("nakl")
    ftp.cwd(request.user.username)
    #Загружаем файл
    dbf_name = str(num_dbf) + '.DBF'
    dbf_file = MEDIA_ROOT + '/ftp/' + request.user.username + '/' + dbf_name
    lf = open(dbf_file, "wb")
    ftp.retrbinary("RETR " + dbf_name, lf.write, 8 * 1024)
    lf.close()
    ftp.quit()

    fp = open(dbf_file, 'rb')
    response = HttpResponse(fp) #Важно открыть файл и только потом передать его в HttpResponse
    fp.close()
    response['Content-Disposition'] = 'attachment; filename=%s' % dbf_name
    return response

 

Простой поиск на Django

Полнотекстовый поиск конечно хорошо, но иногда нет необходимости в нем. Реализация  простого поиска, в django оказалась довольно тривиальной задачей. Дабы облегчить кому то поиск, того, на что у меня ушло несколько часов да и себе на памятку, опишу вкратце как реализовать простой поиск на Django.

Допустим у нас есть модель

class Patient(models.Model):
    """
    Модель описывающая пациентов клиники, реализована
    в виде отдельного приложения, так как будет являться одной из базовых моделей
    исходя из логики пронраммы
    """
    firstname = models.CharField(max_length=100, verbose_name="Имя", blank=False, null=True)
    lastname = models.CharField(max_length=300, verbose_name="Фамилия", blank=False, null=True)
    midle_name = models.CharField(max_length=300, verbose_name="Отчетство", blank=True, null=True)

Читать далее

Как узнать директорию установки Django в Windows?

Как узнать директорию установки Django в Windows? Все очень просто, открываем консоль, и набираем в ней

python
import sys
sys.path = sys.path[1:]
import django
print(django.__path__)