https://github.com/rscr1/fastapi_app
Итоговое задание по дисциплине "Python & SQL" из ШАД
https://github.com/rscr1/fastapi_app
docker fastapi python sql
Last synced: 2 months ago
JSON representation
Итоговое задание по дисциплине "Python & SQL" из ШАД
- Host: GitHub
- URL: https://github.com/rscr1/fastapi_app
- Owner: rscr1
- Created: 2024-03-11T07:20:56.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-14T07:02:38.000Z (over 2 years ago)
- Last Synced: 2025-10-24T09:38:12.650Z (8 months ago)
- Topics: docker, fastapi, python, sql
- Language: Python
- Homepage:
- Size: 46.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Полезная информация
В репозиторий добавлен **Makefile** с полезными командами.
Команды вызываются в консоли вот таким образом:
```shell
make linters
make install_reqs
```
## Изменения по урокам
**Урок 1**. Реализовали ручки приложения с фейковой базой и сериализаторами.
**Урок 2**. Провели рефакторинг. Разложили сериализаторы и ручки по отдельным пакетам.
Подключили настоящую БД в Докере и создали модели.
**Урок 3**. Провели рефакторинг.
Поместили питонячий код в папку src (чтобы тесты запускались корректно и код был отделен от окружения).
Написали по одному тесту к ручкам.
Настроили pytest и фикстуры. Пример почти идеальной настройки фикстур для работы с БД.
Добавили .env файл и модуль settings для хранения переменных окружения и их легкого использования.
Обновили **Makefile**.
## Структура проекта
Для удобства и соблюдения принципов чистой архитектуры проект разделен на следующие пакеты:
- `configurations` — слой для хранения конфигураций, констант, параметров и настроек проекта.
- `models` — слой для хранения моделей (ORM или Data Classes).
- `routers` — слой для настроек урлов для различных эндпоинтов.
- `schemas` — слой содержащий схемы pydantic, отвечает за сериализацию и валидацию.
## Полезные ссылки (в основном на английском)
#### По Fastapi:
1. [Официальная документация](https://fastapi.tiangolo.com/)
2. [Лучшие практики](https://github.com/zhanymkanov/fastapi-best-practices)
3. [Собрание полезных библиотек и пакетов](https://github.com/mjhea0/awesome-fastapi)
4. [Полезная статья по структуре проекта](https://camillovisini.com/coding/abstracting-fastapi-services)
#### По принципам REST архитектуры:
5. [Полезные рекомендации по правильному написанию REST API]()
#### По SQLAlchemy:
6. [Хороший бесплатный видеокурс на YouTube. На русском языке](https://youtube.com/playlist?list=PLeLN0qH0-mCXARD_K-USF2wHctxzEVp40&si=V7rZGqu1KVJvidLz)
7. [Видеокурс построенный по официальной доке SQLAlchemy. На русском языке](https://youtube.com/playlist?list=PLN0sMOjX-lm5Pz5EeX1rb3yilzMNT6qLM&si=ShZ41fEfSR0s0op4)