Flask. Model. Пример#5
В этом примере приложения на Flask показано, как можно организовать работу с данными используя возможности ООП, и сделать код приложения легко читаемым, разделенным на функциональные модули и гибким. Этот пример можно использовать как некий базовый шаблон для начала разработки приложения.
Классы model
В этом примере сделано следующим образом. В папке model в файле default.py описан класс model, от которого наследуются классы, описанные в файлах client.py, seller.py, product.py. Т.е. default.py является своеобразным «шаблоном» для классов, которые работают с таблицами базы данных. Абсолютно не обязательно наследовать классы именно от него. Вы можете написать свой класс (это будет рассмотрено в следующем примере) с теме же методами __init__, create, read, update, delete.
Т.е. описанные в файлах client.py, seller.py, product.py классы наследуются от описанного в default.py. Если нам потребуется что-то изменить в конкретном классе, мы сможем сделать это в соответствующем файле.
Включение классов
Для "включения" нужных классов в файле app_db.py импортируем классы из нужных файлов:
from model import empty, client, seller, product
И в __init__
добавляем создание объектов:
self.model['client'] = client.model(self.connection)
self.model['seller'] = seller.model(self.connection)
self.model['product'] = product.model(self.connection)
Так делается для того, чтобы можно было потом найти объект по имени.
Роуты
В файле my_app.py описаны роуты. Теперь в роутах фигурирует имя «модели». Т.е. нам не нужно будет в дальнейшем добавлять новые роуты для каждой модели данных.Как это работает
При GET запросе типа http://localhost:5000/client/ сработает роут:
@app.route('/
В нем в качестве параметра фигурирует имя модели. По имени модели метод db.getModel возвращает объект. И уже затем вызывается метод найденного объекта. В данном случае read.
Теперь, когда потребуется организовать работу с "табличкой в базе данных", достаточно описать класс в отдельном файле, скопировать его в папку «model» и прописать в файле app_db.py
Запуск примера
В этом примере, как и в предыдущих, нужно сначала создать базу данных. Для этого запустите скрипт createDB.py.
python3 ./createDB.py
Этот скрипт создаст базу данных SQLite и заполнит её данными.
После этого можно запускать пример:
python3 ./my_app.py
Откройте в браузере:
http://localhost:5000/frontend/
Фронтенд практически не изменился. JsvaScript все пишет в консоль. Добавлены ссылки для просмотра данных Client, Seller, Product.
В следующем примере:
Cross-origin resource sharing (CORS) - совместное использование ресурсов между разными источниками.
Смотри также:
- Flask. Установка и первое приложение
- Flask. JSON
- Flask + SQLite + JSON
- Flask > db_class > SQLite
- Flask. Model. ООП для работы с данными
- Flask, CORS, JSON-файл
- Flask + Vue. Финальный пример
Tags
web java-script bmp280 adc bldc stm32 rs-232 programmator 3d-printer flash pwm sms motor docker raspberry-pi meteo gps ngnix bme280 timer ssd1331 mpu-6050 bkp battery rfid st-link tim mpx4115a ssd1306 encoder atmega pmsm wifi options rtc examples nvic soldering mongodb esp8266 books lcd foc flask barometer bluetooth ethernet brushless uart watchdog servo gpio solar git remap dma usart eb-500 smd nodemcu sensors displays html python capture dht11 led i2c eeprom piezo exti websocket max1674 usb dc-dc avr hih-4000 css mpu-9250
Архіви