Сообщения

Сообщения за сентябрь, 2020

Django. Middleware

Изображение
  Middleware для django - это способ внедриться в процесс обработки запроса от клиента. Пишем собственный middleware.       Middleware factory - это вызываемый объект, который принимает вызываемый объект get_response и возвращает middleware.     Middleware - это вызываемый объект, который принимает request, а возвращает response (прямо как view).     Так как middleware factory и сам middleware должны быть просто callabale. Возможны минимум 2 реализации def simple_middleware ( get_response ): # One-time configuration and initialization. def middleware ( request ): # Code to be executed for each request before # the view (and later middleware) are called. response = get_response ( request ) # Code to be executed for each request/response after # the view is called. return response return middleware Здесь simple_middleware - это фабрика. simple_middlware() вызывается при старте сервера, а объект, который она в

Django. Первые шаги.

     В этой статье будет создан проект Django (популярного фреймворка Python для web разработки).      Существует множество комбинаций версий Python и Django. Будем ориентироваться на последние версии. Сейчас это Python 3.8.5 и Django 3.1.1. Установить python можно получив дистрибутив с официальной страницы  https://www.python.org . Если python уже установлен, то проверить наличие django можно командой:          python -m django --version Если django установлен, то будет выведена его версия как ответ на команду; если django не установлен, то будет выведено сообщение "no module named django". Если django не установлен, то установить его очень просто:     python -m pip install django После установки django необходимо перейти в папку, в которой будем создавать проект и выполнить команду:     python -m django startproject PROJECT_NAME где PROJECT_NAME - имя нового проекта. Пусть PROJECT_NAME = funWithDjango. Здесь и далее рабочей папкой (если не указано иного), обозначаемой

Django. Templates (шаблоны)

Изображение
    Web страницы бывают статическими и динамическим. Статические страницы - это сайты-визитки, лендинги и подобные. Информация на этих страницах не изменяется и обычно такие страницы хранятся на сервере в виде набора файлов (html, css, js), которые передаются клиенту (Web-браузеру обычно) в неизменном виде. Однако, в большинстве случаев требуется динамически формировать странички. Есть множество подходов к созданию динамических страниц.      Один из таких методов - шаблоны Django (templates).       Для демонстрации шаблонов - создадим проект django (см. публикацию: "Django. первые шаги").      Рендеринг шаблона осуществляется при помощи функции       django.shortcuts.render(request, 'templatename', params) , где 'templatename' - это имя файла, лежащего в папке 'templates' любого приложения проекта; params - словарь, в котором ключ - имя "переменной", а значение - её значение.     Обращение к переменной производится через {{ varname }}. Если

python: магические (dunder) методы

      Магическими методами называются такие методы, которые позволяют добавить объекту некоторые функции (например, обращение по индексу, определение длины или пр.). Такие методы имеют в названии двойное подчеркивание в начале и в конце, от туда и второе название (dunder - double underscore (двойное подчёркивание по английски)) методы. Существуют следующие dunder методы: 1) Для бинарных операций: сложение, вычитание, умножение, деление, возведение в степень, логические действия (и, или), равенстов; 2) Для унарных операций: унарный плюс и унарный минус 3) Для создания и удаления классов: __new__, __init__, __del__. При создании объекта сначала вызывается new, затем init. Del вызывается тогда, когда будет удаляться объект. Не обязательно, когда будет вызван оператор del. __del__ всегда вызывается при завершении работы интерпретатора. 4) Для строкового представления: __str__ и __repr__. Задача функции repr - вернуть строковое представление, которое отражает уникальность  объекта, а задача

Python3. async/await

Изображение
      Долгожданные async и await появились в Python3.5     Ключевое слово await указывает, что при выполнении следующего за ним выражения возможно переключение на другую программу или другой поток. Соответственно, выражение, следующее за await  должно быть awaitable  объектом.

Курс НД. Гибкие методолгоии и инструменты разработки

Изображение
      Гибкие методологии разработки очень распространены в современном мире. Выделю некоторые из них: Экстремальное программирование, DSDM, BDD, Scrum, FDD. Разберём их по порядку. Экстремальное программирование     Экстремальное программирование было разработчиком зарплатной системы Chrysler. Если честно, то он задокументировал и выпустил в виде книге то, что он и его коллеги делали в рамках проекта. Основные тезисы экстремального программирования:  - разработка через TDD (сначала пишется тест, который не работает, затем дорабатывается ПО таким образом, чтобы тест срабатывал)  - игра в планирование (брифинг, в результате которого задачи заказчика окажутся декомпозированны на задачи программистам)  - заказчик всегда рядом (с ним легко поддерживать связь)  - парное программирование (1 человек пишет код, а второй сразу производит его ревизию)  - непрерывная интеграция  - рефакторинг  - частые небольшие релизы  - простота проектирования (single desighn)  - метафора системы (аналог архитек

Bootstrap: размеры устройств

 Bootstrap помогает адаптивной вёрстке при помощи классов, которые сопоставляются с размерами экранов устройств. Есть несколько типовых размеров: sm - small (576px) md - medium (768px) lg - large (992px) xl - extra large (1200px) модификатора xs (extra small) нет, т.к. он является значением по умолчанию.

Клон 101: настройка Bootstrap

Изображение
     Bootstrap - отличный CSS фреймворк. И его следует использовать для создания адаптивной вёрстки. А мне она понадобится.     Так как я использую Vue самым полным способом, то буду использовать модуль  BootstrapVue .     В документации написано, что страница, на которой будет использоваться Bootstrap должна быть отмечена как HTML5 страница. То есть первой строкой должна быть: <!doctype html>     По умолчанию шаблон для страницы лежит в файле ./.nuxt/views/app.template.html. И там, как не трудно видеть - эта строка присутствует:     Теперь добавлю на страницу указание того, что на неё используется русский язык. Делается это в теге <html> в том месте, где стоят {{ HTML_ATTRS }}. Доступ в это поле осуществляется следующим образом:     Открываю файл nuxt.config.js  и внутри export default {...}  нахожу там head: {}   и внутрь дописываю:      Аналогичным образом (парой ключ: значение) можно добавлять любые атрибуты.     Кроме того, т.к. Bootstrap ориентирован на методологию mo