Пояснення Python Flask за 5 хвилин або менше

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.

  26 найкращих безкоштовних альтернатив TeamViewer

Навпаки, 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

Це має завантажити деякі файли та встановити залежності.

  Як зациклити презентацію PowerPoint

Обслуговування деяких 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

Перезавантажте вікно браузера, і ви повинні побачити наступне.

  З цими 7 інструментами легко розслідувати Dark Web

У цьому прикладі ми відображаємо статичну сторінку 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.