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