committed by
GitHub
2 changed files with 85 additions and 0 deletions
@ -0,0 +1,84 @@ |
|||||
|
# Генераторы проектов - Шаблоны |
||||
|
|
||||
|
Чтобы начать работу быстрее, Вы можете использовать "генераторы проектов", в которые включены множество начальных настроек для функций безопасности, баз данных и некоторые <dfn title="также известные как маршруты, URLы, ручки, ">эндпоинты</dfn> API. |
||||
|
|
||||
|
В генераторе проектов всегда будут предустановлены какие-то настройки, которые Вам следует обновить и подогнать под свои нужды, но это может быть хорошей отправной точкой для Вашего проекта. |
||||
|
|
||||
|
## Full Stack FastAPI PostgreSQL |
||||
|
|
||||
|
GitHub: <a href="https://github.com/tiangolo/full-stack-fastapi-postgresql" class="external-link" target="_blank">https://github.com/tiangolo/full-stack-fastapi-postgresql</a> |
||||
|
|
||||
|
### Full Stack FastAPI PostgreSQL - Особенности |
||||
|
|
||||
|
* Полностью интегрирован с **Docker** (основан на Docker). |
||||
|
* Развёртывается в режиме Docker Swarm. |
||||
|
* Интегрирован с **Docker Compose** и оптимизирован для локальной разработки. |
||||
|
* **Готовый к реальной работе** веб-сервер Python использующий Uvicorn и Gunicorn. |
||||
|
* Бэкенд построен на фреймворке <a href="https://github.com/tiangolo/fastapi" class="external-link" target="_blank">**FastAPI**</a>: |
||||
|
* **Быстрый**: Высокопроизводительный, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). |
||||
|
* **Интуитивно понятный**: Отличная поддержка редактора. <dfn title="также известное как автозаполнение, интеллектуальность, автозавершение">Автодополнение кода</dfn> везде. Меньше времени на отладку. |
||||
|
* **Простой**: Разработан так, чтоб быть простым в использовании и изучении. Меньше времени на чтение документации. |
||||
|
* **Лаконичный**: Минимизировано повторение кода. Каждый объявленный параметр определяет несколько функций. |
||||
|
* **Надёжный**: Получите готовый к работе код. С автоматической интерактивной документацией. |
||||
|
* **Стандартизированный**: Основан на открытых стандартах API (<a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank">OpenAPI</a> и <a href="https://json-schema.org/" class="external-link" target="_blank">JSON Schema</a>) и полностью совместим с ними. |
||||
|
* <a href="https://fastapi.tiangolo.com/features/" class="external-link" target="_blank">**Множество других возможностей**</a> включая автоматическую проверку и сериализацию данных, интерактивную документацию, аутентификацию с помощью OAuth2 JWT-токенов и т.д. |
||||
|
* **Безопасное хранение паролей**, которые хэшируются по умолчанию. |
||||
|
* Аутентификация посредством **JWT-токенов**. |
||||
|
* <dfn title="Python-объекты связанные с базами данных">Модели</dfn> **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: <a href="https://github.com/tiangolo/full-stack-fastapi-couchbase" class="external-link" target="_blank">https://github.com/tiangolo/full-stack-fastapi-couchbase</a> |
||||
|
|
||||
|
⚠️ **ПРЕДУПРЕЖДЕНИЕ** ⚠️ |
||||
|
|
||||
|
Если Вы начинаете новый проект, ознакомьтесь с представленными здесь альтернативами. |
||||
|
|
||||
|
Например, генератор проектов <a href="https://github.com/tiangolo/full-stack-fastapi-postgresql" class="external-link" target="_blank">Full Stack FastAPI PostgreSQL</a> может быть более подходящей альтернативой, так как он активно поддерживается и используется. И он включает в себя все новые возможности и улучшения. |
||||
|
|
||||
|
Но никто не запрещает Вам использовать генератор с СУБД Couchbase, возможно, он всё ещё работает нормально. Или у Вас уже есть проект, созданный с помощью этого генератора ранее, и Вы, вероятно, уже обновили его в соответствии со своими потребностями. |
||||
|
|
||||
|
Вы можете прочитать о нём больше в документации соответствующего репозитория. |
||||
|
|
||||
|
## Full Stack FastAPI MongoDB |
||||
|
|
||||
|
...может быть когда-нибудь появится, в зависимости от наличия у меня свободного времени и прочих факторов. 😅 🎉 |
||||
|
|
||||
|
## Модели машинного обучения на основе spaCy и FastAPI |
||||
|
|
||||
|
GitHub: <a href="https://github.com/microsoft/cookiecutter-spacy-fastapi" class="external-link" target="_blank">https://github.com/microsoft/cookiecutter-spacy-fastapi</a> |
||||
|
|
||||
|
### Модели машинного обучения на основе spaCy и FastAPI - Особенности |
||||
|
|
||||
|
* Интеграция с моделями **spaCy** NER. |
||||
|
* Встроенный формат запросов к **когнитивному поиску Azure**. |
||||
|
* **Готовый к реальной работе** веб-сервер Python использующий Uvicorn и Gunicorn. |
||||
|
* Встроенное развёртывание на основе **Azure DevOps** Kubernetes (AKS) CI/CD. |
||||
|
* **Многоязычность**. Лёгкий выбор одного из встроенных в spaCy языков во время настройки проекта. |
||||
|
* **Легко подключить** модели из других фреймворков (Pytorch, Tensorflow) не ограничиваясь spaCy. |
Loading…
Reference in new issue