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
bme280 bmp280 gps mpu-6050 options stm32 ssd1331 ssd1306 eb-500 3d-printer soldering tim mpu-9250 dma watchdog piezo exti web raspberry-pi docker ngnix solar bluetooth foc html css brushless flask dc-dc capture gpio avr rs-232 mpx4115a atmega mongodb st-link barometer pwm nvic git java-script programmator dht11 hih-4000 pmsm encoder max1674 smd sensors rtc adc lcd motor timer meteo examples i2c usb flash sms rfid python esp8266 servo books bldc remap eeprom bkp battery ethernet uart usart displays led websocket nodemcu wifi
Архіви