Посібник для початківців з Flask API

pic

Flask — це один з найпростіших способів створення веб-додатків за допомогою Python. Уявімо, що ви захоплюєтесь машинним навчанням (ML) і багато працювали над тренуванням ефективної моделі. Тепер ви хочете поділитися цією чудовою моделлю з усім світом. Ви хочете створити інтерактивну та зручну платформу для відображення результатів вашої моделі. Найпоширеніші платформи — це зазвичай додатки та веб-сайти.
Найпростіший спосіб — створити API на основі Flask за допомогою Python. Як тільки веб- або мобільний розробник отримає це API, він або вона зможе легко створити платформу для відображення результатів вашої тренованої моделі машинного навчання у зручному для користувача вигляді.

Перед тим, як перейти до практики, давайте розберемося, що і чому.

Що таке Flask? Чому нам потрібен Flask?
Flask — це легкий, простий у використанні веб-фреймворк на Python. Це набір інструментів, який надає все необхідне для швидкого створення та запуску веб-сервера або API. Він не має зайвих компонентів, тільки те, що потрібно для роботи.

Що таке API?
Простими словами, API (Application Programming Interface) дозволяє різному програмному забезпеченню взаємодіяти одне з одним. Ви можете порівняти його з Гедвігом, совою Гаррі Поттера. Уявіть, що Гедвіг — це API, і її завданням є доставка повідомлень між сервером (Хогвартс) і клієнтом (Гаррі Поттером). Ви надсилаєте своє магічне повідомлення (дані) іншим, і вони відправляють його назад, коли все готово.

Тепер давайте розглянемо покроковий процес створення Flask API.

Крок 1: Встановлення Flask

“Готуйте свої палиці!” 🪄

Перед початком потрібно встановити Flask на вашому комп'ютері. Для цього скористаєтесь pip, вбудованим менеджером пакетів Python. Відкрийте термінал (або командний рядок) і введіть:

pip install flask

Ця команда встановить Flask і підготує його до використання у вашому проєкті. Після завершення ви зможете написати перший рядок коду.

Крок 2: Ваш перший Flask додаток

“Ласкаво просимо до Хогвартса!” 🏰

Добре, почнемо з малого. Ми напишемо простий додаток, який відображатиме повідомлення “Ласкаво просимо до Хогвартса!” при відвідуванні головної сторінки вашого сайту. Це як відкрити ворота Хогвартса та привітати відвідувачів.

from flask import Flask  

# Створення Flask додатку  
app = Flask(__name__)  

# Опис маршруту головної сторінки  
@app.route('/')  
def welcome():  
 return "Ласкаво просимо до Хогвартса!"  

# Запуск додатку  
if __name__ == '__main__':  
 app.run(debug=True)

Ось ваш перший Flask додаток! Ось що відбувається:

  1. Імпортуємо Flask: Спочатку ми імпортуємо бібліотеку Flask. Це як сказати “Accio, Flask!” і підключити її до вашого проєкту.
  2. Ініціалізація додатку: Рядок Flask(__name__) створює додаток, який буде обробляти запити.
  3. Опис маршруту: @app.route('/') створює маршрут для головної сторінки ('/'). Кожного разу, коли хтось відвідує головну сторінку за адресою http://127.0.0.1:5000/, Flask викликає функцію welcome() і повертає "Ласкаво просимо до Хогвартса!"
  4. Запуск додатку: app.run() запускає сервер. Він працює локально.

Як запустити:

  1. Збережіть цей код у файл з назвою app.py.
  2. Відкрийте термінал, перейдіть у папку з файлом і запустіть:
python app.py

Відкрийте веб-браузер і перейдіть за адресою http://127.0.0.1:5000/.
You’ll see the message, "Welcome to Hogwarts!” 🏰

Крок 3: Динамічні маршрути

“Я — капелюх розподілу Хогвартса, і я можу розподілити їх усіх!” 🎩

Тепер давайте додамо динамічний маршрут, який дозволить вам передавати ім'я через URL та сортувати вас у ваш факультет Хогвартса.

import random  
from flask import Flask  

app = Flask(__name__)  

# Маршрут капелюха розподілу  
@app.route('/sortinghat/')  
def sorting_hat(name):  
 houses = ["Gryffindor", "Hufflepuff", "Ravenclaw", "Slytherin"]  
 house = random.choice(houses)  
 return f"Привіт, {name}! Ви потрапили до {house}."  

if __name__ == '__main__':  
 app.run(debug=True)

Пояснення:

  1. Маршрут /sortinghat/ дозволяє захопити ім'я з URL. Тому, якщо хтось відвідає /sortinghat/Harry, функція прийме "Harry" як вхідні дані.
  2. Потім ми випадковим чином вибираємо факультет (Грифіндор, Пуффендуй, Рейвенкло або Слизерин) за допомогою вбудованої функції Python random.choice().
  3. Функція sorting_hat() повертає персоналізоване повідомлення, яке вказує, до якого факультету вас розподілено.

Як це перевірити:

  1. Запустіть додаток знову (python app.py).
  2. У браузері перейдіть за такими адресами:
  • http://127.0.0.1:5000/sortinghat/Harry — на екрані з'явиться: "Привіт, Гаррі! Ви потрапили до Грифіндору."
  • http://127.0.0.1:5000/sortinghat/Luna — на екрані з'явиться: “Привіт, Луна! Ви потрапили до Рейвенкло.”

Крок 4: Повернення JSON даних

“Діагон-Алі — це вулиця з бруківкою, де студенти Хогвартса купують усе необхідне для навчання.” 🔮

У багатьох випадках, замість простого тексту, ви хочете надіслати структуровані дані. JSON (JavaScript Object Notation) — це формат для обміну даними, особливо між сервером і клієнтом.

Уявіть, що ви хочете надіслати інформацію про різні предмети (наприклад, інгредієнти для зілля або магічне приладдя з Діагон-Алі). Ви можете зробити це, надіславши структуровані дані у форматі JSON зі свого Flask додатку.

from flask import Flask, jsonify  

app = Flask(__name__)  

# Опис маршруту, що повертає JSON дані  
@app.route('/diagonalley')  
def get_items():  
 items = {  
 "wand": {"price": 10, "description": "Могутня чарівницька паличка."},  
 "broomstick": {"price": 20, "description": "Швидка та елегантна для квідичу."},  
 "cauldron": {"price": 5, "description": "Для варіння зіль."}  
 }  
 return jsonify(items)  

if __name__ == '__main__':  
 app.run(debug=True)

Пояснення:

  1. jsonify(): Ця функція перетворює словник Python у формат JSON. У наведеному прикладі items — це словник, що містить список магічних предметів і їхні деталі (ціна, опис), який потім повертається у вигляді JSON відповіді.
  2. Маршрут /diagonalley повертає структурований JSON об'єкт, що представляє список предметів.

Як це перевірити:

  1. Запустіть додаток і перейдіть за адресою http://127.0.0.1:5000/diagonalley.
  2. Ви побачите JSON відповідь, схожу на цю:
{  
 "wand": {"price": 10, "description": "Могутня чарівницька паличка."},  
 "broomstick": {"price": 20, "description": "Швидка та елегантна для квідичу."},  
 "cauldron": {"price": 5, "description": "Для варіння зіль."}  
}

Крок 5: Обробка помилок

Товари, яких немає в наявності…

Уявіть, що ви заходите до магазину на Діагон-Алі і питаєте про товар, якого немає в наявності.
Як би ви почувалися, якщо продавець просто дивився на вас? Досить розчаровуюче, чи не так?
Flask дозволяє вам обробляти помилки і надавати користувачам зрозуміле повідомлення, якщо щось йде не так.

Давайте змінемо попередній код, щоб обробити таку ситуацію.

from flask import Flask, jsonify  

app = Flask(__name__)  

@app.route('/diagonalley/')  
def get_item(item):  
 items = {  
 "wand": {"price": 10, "description": "Могутня чарівницька паличка."},  
 "broomstick": {"price": 20, "description": "Швидка та елегантна для квідичу."},  
 "cauldron": {"price": 5, "description": "Для варіння зіль."}  
 }  
 if item in items:  
 return jsonify({item: items[item]})  
 else:  
 return jsonify({"error": "Товар відсутній!"}), 404  

if __name__ == '__main__':  
 app.run(debug=True)

Пояснення:

  1. Маршрут /diagonalley/ приймає конкретний товар (наприклад, "wand").
  2. Якщо запитуваний товар є в магічному магазині, Flask поверне його деталі у форматі JSON.
  3. Якщо товар не знайдено, Flask поверне кастомне повідомлення про помилку у форматі JSON з кодом статусу 404 (що означає "Не знайдено").

Як це перевірити:

Перейдіть за такими URL-адресами після запуску додатку:

  • http://127.0.0.1:5000/diagonalley/wand— Ви побачите деталі палички.
  • http://127.0.0.1:5000/diagonalley/potions— Отримаєте помилку 404 з повідомленням "Товар відсутній!"

Обробляючи помилки таким чином, ви забезпечуєте, що користувачі вашого API завжди отримують зрозумілий зворотний зв'язок, навіть якщо щось йде не так.

Крок 6: Запуск Flask API

Кидаємо останнє закляття… 🧙

Після того, як ви написали весь код, настав час запустити Flask додаток. Для цього кроки такі:

  1. Збережіть файл з розширенням .py (наприклад, app.py).
  2. Відкрийте термінал, перейдіть до папки, де знаходиться файл, і введіть:
python app.py

Ви побачите виведення, що виглядатиме приблизно так:

Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
  1. Відкрийте веб-браузер і перейдіть за адресою http://127.0.0.1:5000/.

Ваш Flask додаток тепер працює локально на вашому комп'ютері. Ви можете доступити різні маршрути і протестувати ваше API.

Вітаємо! Ви щойно створили своє перше API за допомогою Flask. Від простих привітань до випадкового сортування факультету та обробки запитів на магічні товари — ви побудували основу, яка може перетворитися на щось неймовірне. З Flask створення API — це просто, і тепер, коли ви знаєте основи, ви можете почати будувати складніші додатки.

Щасливого кодування, товаришу чарівнику! ✨

Перекладено з: The Beginner’s Guide to Flask API

Leave a Reply

Your email address will not be published. Required fields are marked *