1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hyjsunny-yeti

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Асинхронный веб-разработка фреймворк (YETI)

Этот фреймворк предназначен для быстрого создания бизнес-приложений, готов к использованию сразу после установки. Низкий порог входа, идеален для новичков и опытных разработчиков.

Возможности

  1. Асинхронность (основана на uvicorn)
  2. Кэширование (основана на pyredis и aioredis. Включает Redis и Memcached)
  3. Базы данных (основана на sqlalchemy). Включает MySQL и MongoDB
  4. Распределенные задачи (основана на celery)
  5. Логирование (основана на loguru)
  6. Конфигурация (основана на oslo.config(OpenStackProject))
  7. Авторизация (JWT)
  8. CLI (основана на click)
  9. WebSocket (основана на fastapi)
  10. Обработчики исключений
  11. Автоматическое управление пулом соединений асинхронного HTTP клиента (основана на aiohttp)

Зависимости окружения

Python 3.7+

Сервер Redis

MySQL 5.7+ или MariaDB 10.0+# Быстрый старт

Метод 1: запуск проекта вручную

Шаг 1: скачивание проекта

git clone https://gitee.com/hyjsunny/yeti.git

Шаг 2: настройка переменных окружения

export PROJECTNAME=yeti
# cd $PROJECTNAME/
# export PYTHONPATH=$PYTHONPATH:`pwd`

Шаг 3: установка зависимостей

# pip3 install -r requirements.txt

Шаг 4: изменение конфигурации

# mkdir -p /etc/$PROJECTNAME/
# cp etc/config.ini.simple /etc/$PROJECTNAME/config.ini
````Измените строки подключения базы данных и Redis в конфигурационном файле.
```sql_connection = "ваша строка подключения к базе данных"
cached_backend = "ваша строка подключения к Redis"
```

### Шаг 5: запуск проекта
По умолчанию слушает 127.0.0.1:8000
```bash
# python3 bin/yetid.py
```
или<br>

Указание файла конфигурации
```
python3 bin/yetid.py --config-file=/путь/до/ваших/конфигураций/config.ini
```

## Метод 2: запуск проекта с помощью Docker (рекомендовано)
### Шаг 1: установка Docker
Выберите подходящий метод установки в зависимости от вашей операционной системы. Ссылка: [Установка Docker](https://docs.docker.com/engine/install/)
### Шаг 2: запуск контейнеров зависимостей
```bash
# Запуск Redis
docker run --net host \
--name redis-server \
-d redis
# Запуск mariadb
docker run --name mariadb \
--net host \
-e MYSQL_ROOT_PASSWORD=Ebi8WQXX67fVFhYc \
-e MARIADB_DATABASE=default_db \
-d mariadb
```

### Шаг 3: клонирование проекта
```bash
git clone https://gitee.com/hyjsunny/yeti.git
# Установка имени проекта
export PROJECTNAME=yeti
```
### Шаг 4: изменение конфигурационного файла
```bash
mkdir -p /etc/$PROJECTNAME
cp $PROJECTNAME/etc/config.ini.simple /etc/$PROJECTNAME/config.ini
vim /etc/$PROJECTNAME/config.ini

sql_connection = "ваш sql соединение"
cached_backend = "ваш redis соединение"
listen = "адрес прослушивания"
port = "порт прослушивания"
```

### Шаг 5: сборка и запуск контейнера
```bash
\cp $PROJECTNAME/Dockerfile . && \
docker build --build-arg PROJECTNAME=$PROJECTNAME --build-arg TZ=Asia/Shanghai -t $PROJECTNAME:latest . && \
docker run --name $PROJECTNAME --net host -v /etc/$PROJECTNAME/:/etc/$PROJECTNAME/ -v /var/log/:/var/log/ -d $PROJECTNAME
```**Важное замечание**  
Вышеуказанные шаги предназначены только для тестирования; в рабочей среде используйте с осторожностью.

## Тестирование
```python
# curl http://127.0.0.1:8080/helloworld
{"result": "hello world"}
```

# Описание структуры директорий
### [Описание структуры проекта](docs/dir_scheme.md#описание_структурного_компонента_проекта)    

# Разработка API
### [Разработка API](docs/api.md#инструкция_разработки_API)   

# WebSocket
### [WebSocket](docs/websocket.md#WebSocket)

# Логирование
### [Логирование](docs/logging.md#логирование)

# Конфигурация
### [Конфигурация](docs/config.md#конфигурация)

# База данных
### [База данных](docs/database.md#база_данных)

# Кэширование
### [Кэширование](docs/cache.md#кэширование)

# Асинхронный HTTP клиент
### [aiohttp клиент](docs/aiohttp.md#асинхронный_HTTP_клиент)

# Расписание/Асинхронные задачи
Планируется использование Celery, но пока не интегрировано

# Аутентификация
### [Аутентификация](docs/auth.md#аутентификация)

# Командная строка
### [Командная строка](docs/cli.md#скрипты_командной_строки)

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
GPL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/hyjsunny-yeti.git
git@api.gitlife.ru:oschina-mirror/hyjsunny-yeti.git
oschina-mirror
hyjsunny-yeti
hyjsunny-yeti
master