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

Настройка Visual Code для работы с Django

Как правило когда я пишу код на Django то использую Pycharm, пожалуй лучше инструмента для разработки не найти. Правда стоит упомянуть, что он платный. Благо и рунете полно серверов активации.

Тем не менее захотелось мне иметь какую то альтернативу Pycharm на всякий случай. Выбор пал на любимый мною  редактор кода, или даже мини IDE Visual Code.

Проект открытый и разрабатывается компанией Microsoft. К счастью запустить Django на нем не составит никакого труда.  Первым делом нужно установить сам редактор, Сделать это можно на странице проекта.

После установки выполняем простые манипуляции. Читать далее

Отправляем уведомления в Django через Telegram API.

Вступление

Был у меня значит один проект на Django, и имел этот проект формочку простую. И собирала это формочка лидов. И все было круто-счпстливо. И собирались лиды на e-mail ящике…

Как бы все ничего, но смущало то,  что время реагирования на  заявки лидов было непозволительно большим. Ну как бы почту не получается, целый день мониторить. Наверное не открою Америку если скажу, что если не дать обратную связь лиду (контакту, клиенту) в первые 5 минут с момента заявки до вероятность успешной сделки по истечении этих первых  5 минут увеличивается в геометрической прогрессии.

Если не дать обратную связь лиду (контакту, клиенту) в первые 5 минут с момента заявки до вероятность успешной сделки по истечении этих первых  5 минут увеличивается в геометрической прогрессии.

Читать далее

Вернуть файл в 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 на хостинге Beget

Пишу как заметку для себя, так как изредка приходится  разветывать или настраивать Django приложения на shared хостинге Beget.ru

Итак первым делом нужно в паели веб-сервера включить доступ по ssh для вашего аккаунта.

Далее подключаемся к нашему хостингу из терминала

ssh tabari@tabari.beget.tech

попав на сервер переходим в docker — окружение

ssh localhost -p222

Прежде чем идти дальше, предполагается, что у вас уже установлен Python на хостинге. Как устанавливать цитировать руководство не буду, просто оставлю ссылку на него, где все подробно расписано. В моем случае, нужно было установить Python 3, что я и сделал.

На сервере уже по умолчанию установлен git, поэтому переходим в папку Django приложения,  обновляем проект командой, разумеется предварительно нужно инициировать репозиторий git

git pull

накатываем миграции Читать далее

Простой поиск на 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)

Читать далее