Перейти к содержанию

Генераторы проектов - Шаблоны

Чтобы начать работу быстрее, Вы можете использовать "генераторы проектов", в которые включены множество начальных настроек для функций безопасности, баз данных и некоторые эндпоинты 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.