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. Финальный пример
Недавні записи
- Text to speech. Українська мова
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
Tags
docker sensors rtc led timer wifi remap sms css websocket mongodb bme280 rfid bluetooth esp8266 nodemcu bkp piezo bmp280 i2c mpu-6050 encoder examples avr brushless ngnix nvic displays bldc java-script pmsm barometer pwm lcd ethernet stm32 raspberry-pi capture usart gpio exti atmega meteo solar smd dma adc eeprom eb-500 flask python ssd1306 uart options flash mpx4115a html gps st-link 3d-printer servo dc-dc foc git books battery hih-4000 watchdog dht11 web tim programmator ssd1331 mpu-9250 usb rs-232 motor max1674 soldering
Архіви