Python Flask — це мікрофреймворк для створення веб-додатків на Python.
Це дуже гнучкий і настроюваний фреймворк, який полегшує навчання. Як результат, це популярний вибір під час створення веб-серверів. У цій статті розповідається про Python Flask: що це таке, його порівняння з іншими фреймворками та як створити базову програму на Python.
Що таке Flask?
Колба це структура для створення веб-серверів на Python. На відміну від інших фреймворків, це не змушує розробника відповідати певній структурі каталогів.
Крім того, він не має права голосу, що дозволяє використовувати будь-які інструменти для виконання таких дій, як підключення до бази даних і перевірка введених даних форми.
Як згадувалося, Flask використовується для створення веб-серверів. Веб-сервер — це програмне забезпечення, яке відповідає на HTTP-запити відповідними даними та файлами.
Flask проти інших фреймворків
У цьому розділі буде коротко порівняно Flask з двома іншими популярними фреймворками – Django та Fast API. Ми розглянемо переваги та обмеження використання Flask порівняно з іншими фреймворками.
Flask проти Django
Flask — це легкий мікрофреймворк. Він пропонує розробникам простоту та гнучкість, дозволяючи створювати по ходу роботи. Однак це означає, що ви повинні зробити багато роботи самостійно.
З іншого боку, Django — це фреймворк із «батареями», який постачається з багатьма попередньо налаштованими інструментами. Це дає змогу швидше будувати та доставляти. Однак Django не дуже гнучкий і має крутішу криву навчання.
У результаті Flask використовується для малих і середніх проектів, тоді як Django використовується для більших і складніших проектів.
Читайте також: Відмінності між Flask і Django
Flask проти FastAPI
FastAPI — це відносно нова структура для створення API на Python. Він швидкий і простий у використанні. Він забезпечує вбудований моніторинг як функцію. Однак це нова структура з відносно невеликою екосистемою та спільнотою. Крім того, його використання обмежене API.
Навпаки, Flask є більш універсальним, оскільки його можна використовувати як для API, так і для відтворення статичних файлів. Він легкий і відносно легкий. Однак він повільніший за FastAPI.
Flask найкраще підходить для веб-додатків, де потрібно відтворювати HTML, тоді як FastAPI слід використовувати для створення API.
Читайте також: FastAPI проти Flask: який із двох підходить саме вам?
Як створити додаток у Flask
У цьому розділі ми створимо просту програму Flask для відображення деяких HTML і надання даних через API. Суть цього полягає не в тому, щоб надати вичерпний посібник із Flask. Швидше, мета полягає в тому, щоб коротко показати вам, як би виглядало створення програми Flask.
передумови
Щоб дотримуватися цього підручника, ви повинні розуміти Python 3. Крім того, знайомство з HTTP було б корисним, хоча й не обов’язковим.
Щоб створити програму у Flask, спочатку потрібно встановити Python. Якщо вам потрібен посібник щодо того, як це зробити, ось відео, яке допоможе вам:
Створіть віртуальне середовище
Спочатку створіть папку проекту для програми. Я запускаю свої команди в Bash Terminal; тому я створюю папку за допомогою такої команди:
mkdir flask-tut
Далі перейдіть у папку за допомогою команди:
cd flask-tut
Після переходу до папки створіть віртуальне середовище за допомогою цієї команди. Це гарантує, що залежності, які ми встановимо, не конфліктуватимуть із залежностями інших проектів.
python3 -m venv venv
Це має створити папку venv, яку можна побачити за допомогою команди:
ls
Активуйте віртуальне середовище
Активувати віртуальне середовище легко. За допомогою терміналу Bash введіть команду:
source venv/bin/activate
Підказка терміналу має змінитися з цього $ на цей (venv) $.
Для отримання додаткової інформації ось стаття про віртуальні середовища в Python.
Встановити Flask
У віртуальному середовищі ми можемо продовжити встановлення Flask. Для цього ми використаємо pip:
pip install Flask
Це має завантажити деякі файли та встановити залежності.
Обслуговування деяких HTML
Далі ми можемо почати працювати з файлом main.py. Цей файл буде точкою входу програми.
touch main.py
Після створення файлу main.py відкрийте його за допомогою вибраного редактора та додайте такий код:
from flask import Flask app = Flask(__name__) @app.route("/") def index(): return '<h1>Hello from Flask!</h1>'
У наведеному вище фрагменті коду ми почали з імпортування класу Flask. Далі ми створили екземпляр класу Flask, передавши змінну __name__. Це вбудована змінна, яка зберігає назву поточного модуля. Це потрібно Flask, щоб знати, де знайти файли. Ми зберегли екземпляр Flask у змінній програми.
Далі ми створили функцію під назвою index. Ця функція повертає HTML, який ми хочемо відобразити користувачеві. Перед визначенням функції ми використовували декоратор @app.route. Цей декоратор перетворює звичайну функцію на функцію перегляду Flask. Це означає, що значення, що повертається функцією, буде перетворено на відповідь HTML.
Для запуску програми використовуємо команду:
flask --app main run
Прапорець –app вказує, де знаходиться програма. У цьому випадку в main.py. Сервер повинен почати працювати.
І якщо ви відкриєте браузер на http://localhost:5000 або http://127.0.0.1:5000, ви побачите h1:
Написати весь наш HTML у нашому коді Python було б погано. В ідеалі ми хотіли б відокремити Python від HTML. У наступному розділі буде розглянуто, як обслуговувати автономні файли HTML.
Обслуговування файлу HTML
У цьому розділі ми напишемо код для обслуговування файлу index.html для нашого веб-сайту. Спочатку створимо файл index.html. Ми створимо цей файл у папці шаблонів, оскільки саме там Flask шукає наш шаблон HTML
touch template/index.html
Далі відкрийте файл за допомогою вибраного редактора та додайте такий код:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Flask Website</title> </head> <body> <h1>Hello from Flask!</h1> </body> </html>
Потім знову відкрийте файл main.py, який ми створили раніше. Потім додайте наступний імпорт угорі, відразу після імпорту Flask:
from flask import render_template
Функція render_template, яку ми щойно імпортували, дозволяє обслуговувати шаблони HTML. Щоб відобразити файл HTML, ми змінюємо функцію індексу, щоб вона виглядала так:
@app.route("/") def index(): return render_template('index.html')
Зупиніть сервер (Ctrl + C) і перезапустіть його за допомогою такої команди:
flask --app main run
Перезавантажте вікно браузера, і ви повинні побачити наступне.
У цьому прикладі ми відображаємо статичну сторінку HTML. За допомогою Flask ви також можете відображати шаблони, створюючи шаблони HTML і надаючи дані. Ці шаблони відповідають синтаксису Jinja. Ми не будемо описувати це тут для стислості, але я зв’яжу деякі хороші ресурси, щоб дізнатися про Flask пізніше.
Створення маршруту API
Відображення вмісту HTML є однією з функцій веб-додатків. Інший — обслуговувати дані через маршрут API. У Flask також легко налаштувати маршрути API. Додайте цей код до файлу main.py, щоб створити маршрут API в ‘/data’.
@app.route('/data') def data(): return { "status": "OK", "msg": "Hello from Flask API" }
Якщо функція повертає dict або список, значення перетворюється на JSON і надсилається як відповідь. Якщо ви перезапустите сервер і відкриєте http://localhost:5000/data, ви побачите таке:
Ресурси для вивчення Flask
❇️ The Документація на колбу відмінно підходить для навчання. Він добре структурований, зрозумілий і, мабуть, є найнадійнішим ресурсом для вивчення Flask.
❇️ freeCodeCamp також має чудове відео на YouTube на Flask. freeCodeCamp — це загальна назва безкоштовних, але якісних навчальних ресурсів.
❇️ Це Курс Udemy це хороший спосіб навчитися створювати API корпоративного рівня у Flask. Він охоплює такі інструменти, як Flask-SQLALchemy та Flask-Smorest.
Висновок
Ця стаття була коротким вступом до Python Flask. Ми розглянули, що це таке, порівняли його з іншими веб-фреймворками та створили просту програму. Нарешті, я пов’язав ресурси для подальшого навчання.
Далі перевірте, як захистити Flask REST API за допомогою веб-токена JSON.