# Генераторы проектов - Шаблоны Чтобы начать работу быстрее, Вы можете использовать "генераторы проектов", в которые включены множество начальных настроек для функций безопасности, баз данных и некоторые эндпоинты API. В генераторе проектов всегда будут предустановлены какие-то настройки, которые Вам следует обновить и подогнать под свои нужды, но это может быть хорошей отправной точкой для Вашего проекта. ## Full Stack FastAPI PostgreSQL GitHub: https://github.com/tiangolo/full-stack-fastapi-postgresql ### Full Stack FastAPI PostgreSQL - Особенности * Полностью интегрирован с **Docker** (основан на Docker). * Развёртывается в режиме Docker Swarm. * Интегрирован с **Docker Compose** и оптимизирован для локальной разработки. * **Готовый к реальной работе** веб-сервер Python использующий Uvicorn и Gunicorn. * Бэкенд построен на фреймворке **FastAPI**: * **Быстрый**: Высокопроизводительный, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). * **Интуитивно понятный**: Отличная поддержка редактора. Автодополнение кода везде. Меньше времени на отладку. * **Простой**: Разработан так, чтоб быть простым в использовании и изучении. Меньше времени на чтение документации. * **Лаконичный**: Минимизировано повторение кода. Каждый объявленный параметр определяет несколько функций. * **Надёжный**: Получите готовый к работе код. С автоматической интерактивной документацией. * **Стандартизированный**: Основан на открытых стандартах API (OpenAPI и JSON Schema) и полностью совместим с ними. * **Множество других возможностей** включая автоматическую проверку и сериализацию данных, интерактивную документацию, аутентификацию с помощью OAuth2 JWT-токенов и т.д. * **Безопасное хранение паролей**, которые хэшируются по умолчанию. * Аутентификация посредством **JWT-токенов**. * Модели **SQLAlchemy** (независящие от расширений Flask, а значит могут быть непосредственно использованы процессами Celery). * Базовая модель пользователя (измените или удалите её по необходимости). * **Alembic** для организации миграций. * **CORS** (Совместное использование ресурсов из разных источников). * **Celery**, процессы которого могут выборочно импортировать и использовать модели и код из остальной части бэкенда. * Тесты, на основе **Pytest**, интегрированные в Docker, чтобы Вы могли полностью проверить Ваше API, независимо от базы данных. Так как тесты запускаются в Docker, для них может создаваться новое хранилище данных каждый раз (Вы можете, по своему желанию, использовать ElasticSearch, MongoDB, CouchDB или другую СУБД, только лишь для проверки - будет ли Ваше API работать с этим хранилищем). * Простая интеграция Python с **Jupyter Kernels** для разработки удалённо или в Docker с расширениями похожими на Atom Hydrogen или Visual Studio Code Jupyter. * Фронтенд построен на фреймворке **Vue**: * Сгенерирован с помощью Vue CLI. * Поддерживает **аутентификацию с помощью JWT-токенов**. * Страница логина. * Перенаправление на страницу главной панели мониторинга после логина. * Главная страница мониторинга с возможностью создания и изменения пользователей. * Пользователь может изменять свои данные. * **Vuex**. * **Vue-router**. * **Vuetify** для конструирования красивых компонентов страниц. * **TypeScript**. * Сервер Docker основан на **Nginx** (настроен для удобной работы с Vue-router). * Многоступенчатая сборка Docker, то есть Вам не нужно сохранять или коммитить скомпилированный код. * Тесты фронтенда запускаются во время сборки (можно отключить). * Сделан настолько модульно, насколько возможно, поэтому работает "из коробки", но Вы можете повторно сгенерировать фронтенд с помощью Vue CLI или создать то, что Вам нужно и повторно использовать то, что захотите. * **PGAdmin** для СУБД PostgreSQL, которые легко можно заменить на PHPMyAdmin и MySQL. * **Flower** для отслеживания работы Celery. * Балансировка нагрузки между фронтендом и бэкендом с помощью **Traefik**, а значит, Вы можете расположить их на одном домене, разделив url-пути, так как они обслуживаются разными контейнерами. * Интеграция с Traefik включает автоматическую генерацию сертификатов Let's Encrypt для поддержки протокола **HTTPS**. * GitLab **CI** (непрерывная интеграция), которая включает тестирование фронтенда и бэкенда. ## Full Stack FastAPI Couchbase GitHub: https://github.com/tiangolo/full-stack-fastapi-couchbase ⚠️ **ПРЕДУПРЕЖДЕНИЕ** ⚠️ Если Вы начинаете новый проект, ознакомьтесь с представленными здесь альтернативами. Например, генератор проектов Full Stack FastAPI PostgreSQL может быть более подходящей альтернативой, так как он активно поддерживается и используется. И он включает в себя все новые возможности и улучшения. Но никто не запрещает Вам использовать генератор с СУБД Couchbase, возможно, он всё ещё работает нормально. Или у Вас уже есть проект, созданный с помощью этого генератора ранее, и Вы, вероятно, уже обновили его в соответствии со своими потребностями. Вы можете прочитать о нём больше в документации соответствующего репозитория. ## Full Stack FastAPI MongoDB ...может быть когда-нибудь появится, в зависимости от наличия у меня свободного времени и прочих факторов. 😅 🎉 ## Модели машинного обучения на основе spaCy и FastAPI GitHub: https://github.com/microsoft/cookiecutter-spacy-fastapi ### Модели машинного обучения на основе spaCy и FastAPI - Особенности * Интеграция с моделями **spaCy** NER. * Встроенный формат запросов к **когнитивному поиску Azure**. * **Готовый к реальной работе** веб-сервер Python использующий Uvicorn и Gunicorn. * Встроенное развёртывание на основе **Azure DevOps** Kubernetes (AKS) CI/CD. * **Многоязычность**. Лёгкий выбор одного из встроенных в spaCy языков во время настройки проекта. * **Легко подключить** модели из других фреймворков (Pytorch, Tensorflow) не ограничиваясь spaCy.