Навигация по курсу:
Введение
Я много говорю😁 и время от времени говорю о своих ошибках, но так и будет, я не хочу, чтобы это было монотонно и полно инструкций. Если мы что-то делаем, мы должны знать, что произойдет, если мы этого не сделаем. Хотя я стараюсь это в какой-то степени минимизировать😶.
Заранее прошу прощения за использование множества английских слов (просто если писать все по русски будет выглядеть коряво 😁)
Ну что? Начнем?)
Прежде всего, создайте новую папку внутри каталога проекта с именем «backend».
Внутри внутреннего каталога» и создайте requirements.txt файл. В этом файле (requirements.txt) мы будем отслеживать все зависимости нашего проекта от внешних библиотек. Это полезно, если мы хотим поделиться нашим кодом или хотим его развернуть. Новая система должна знать, какие библиотеки нужны нашему проекту.
Это наша текущая структура папок:
algoholic.io/
├─.gitignore
└─backend/
└─requirements.txt
Внутри файла requirements.txt введите следующее:
fastapi==0.95.1
uvicorn==0.22.0
Fastapi, как вы уже знаете, uvicorn, hypercorn и gunicorn — это серверы, которые обслуживают наш API. Я выбрал uvicorn, потому что он поддерживает асинхронный код. (Its not unicorn🦄 but uvicorn !)
Чтобы установить эти библиотеки , введите в свой терминал
pip install -r requirements.txt
Ура! Пришло время попробовать FastAPI и создать файл main.py внутри внутренней папки и ввести следующий код. Когда я говорю «введите», я имею в виду, что это всего лишь 7–10 строк, и вам следует печатать, чтобы лучше понять, что происходит. Я сам так делаю. Это правда полезно)
from fastapi import FastAPI
from core.config import settings
app = FastAPI(
title=settings.PROJECT_NAME,
version=settings.PROJECT_VERSION
)
@app.get("/")
def hello_api():
return {"msg":"Привет FastAPI🚀"}
Теперь давайте разберемся, что мы сделали. Мы создаем экземпляр FastAPI и инициализируем его, указав заголовок и версию проекта. Теперь мы можем ссылаться на «приложение» как на объект класса fastapi и использовать его для создания маршрутов.
- @app.get('/') называется декоратором. Декоратор используется для предоставления функции дополнительной функциональности.
- '/' означает, что это домашний endpoint. Если бы это было «/about/», это означало бы, что всякий раз, когда кто-то ищет example.com/about/, запускайте эту функцию.
- get здесь это тип запроса. Существуют типы запросов, которые определяют функциональные возможности, разрешенные для них. В данном случае get означает «Пользователь может подключиться к этому домашнему маршруту, чтобы получить некоторую информацию».
Подробнее о типах запросов:
GET : Использование только для извлечения данных.
POST: Используется для отправки объекта в указанный ресурс, например, для отправки формы.
PUT: Используется для обновления записи таблицы базы данных.
DELETE: Используется для удаления указанного ресурс.
Хорошо, после небольшого экскурса, давайте вернемся к нашему проекту. Обратите внимание, что мы импортируем что-то из файла конфигурации из папки с именем core.
├─.gitignore
└─backend/
├─core/
│ └─config.py
├─main.py
└─requirements.txt
Мы будем хранить настройки и конфигурации нашего проекта внутри config.py
Содержимой файла config.py:
class Settings:
PROJECT_NAME:str = "Algoholic 🔥"
PROJECT_VERSION: str = "1.0.0"
settings = Settings()
Хорошо, теперь настал момент, давайте запустим сервер uvicorn, введите uvicorn main:app --reload
В консоли увидим:
INFO: Will watch for changes in these directories: ['/Documents/algoholic.io/backend']
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Application startup complete.
Флаг --reload сообщает: «uvicorn, пожалуйста, автоматически перезагружай приложение каждый раз, когда я сохраняю какой-либо файл в своем проекте». Теперь перейдите http://127.0.0.1:8000/ и вы увидите
{"msg":"Привет, FastAPI🚀"}
Кроме того, обязательно посетите http://127.0.0.1:8000/docs. Это удобная форма для просмотра ручек вашего приложения.
🔥 Ураааа! Мы создали свое первое приложение!
✅ В следующей части мы научимся работать с базами данных.
Читайте также: Часть 4 (Подключение к базе данных)
❤️ Если вам понравилась статья, ставьте лайк и подписывайтесь на мой канал (Заходи в Ай-Ти).
👍 Если у вас остались вопросы или есть интересные темы, которые вы хотите, чтобы я разобрал, то пишите в комментариях. Ваше мнение очень важно для меня!
#fastapi #fastapi python #fastapi docker #питон разработчик #питон веб