# yeti **Repository Path**: zhangjun76/yeti ## Basic Information - **Project Name**: yeti - **Description**: 异步web开发框架(YETI) 本框架主要面向业务快速开发,开箱即用。学习成本低,适合新手学习,老手直接用于项目开发 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-10-16 - **Last Updated**: 2024-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 异步web开发框架(YETI) ##### 本框架主要面向业务快速开发,开箱即用。学习成本低,适合新手学习,老手直接用于项目开发 # 功能 1. Async(based on [uvicorn](https://www.uvicorn.org/)) 2. Cache(based on [pyredis](https://github.com/andymccurdy/redis-py) and [aioredis](https://aioredis.readthedocs.io/en/latest/getting-started/) include redis memcached) 3. DB(based on [sqlalchemy](https://docs.sqlalchemy.org/en/14/). include mysql mongodb) 4. Distributed Jobs(based on [celery](https://docs.celeryproject.org/en/stable/getting-started/introduction.html) ) 5. logging(based on [loguru](https://github.com/Delgan/loguru)) 6. config(based on [oslo.config(OpenStackPorject)](https://github.com/openstack/oslo.config)) 7. Auth([JWT](https://jwt.io/)) 8. CLI(based on [click](https://click.palletsprojects.com/en/8.0.x/)) 9. websocket(based on [fastapi](https://fastapi.tiangolo.com/)) 10. exception handler 11. async http client automatic manager connection pool(based on [aiohttp](https://docs.aiohttp.org/en/latest/client_quickstart.html)) # 环境依赖 #### python3.7+ #### redis server #### mysql 5.7+ OR Mariadb 10.0+ # Quick Start ## 方式一:手动启动项目 ### step1: 下载项目 ```angular2html git clone https://gitee.com/hyjsunny/yeti.git ``` ### step2: 设置环境变量 ```angular2html export PROJECTNAME=yeti # cd $PROJECTNAME/ # export PYTHONPATH=$PYTHONPATH:`pwd` ``` ### step3: 安装依赖 ```angular2html # pip3 install -r requirements.txt ``` ### step4: 修改配置 ````angular2html # mkdir -p /etc/$PROJECTNAME/ # cp etc/config.ini.simple /etc/$PROJECTNAME/config.ini 修改配置文件中的数据库连、Redis连接串 sql_connection = "your db connection string" cached_backend = "your redis connection string" ```` ### step5: 启动项目 默认监听在127.0.0.1:8000 ```angular2html # python3 bin/yetid.py ``` or
指定配置文件 ``` python3 bin/yetid.py --config-file=/path/your/config.ini ``` ## 方式二:Docker方式启动项目(推荐) ### step1: 安装Docker 根据自己的操作系统选择合适的安装方式。参考: [Docker安装](https://docs.docker.com/engine/install/) ### step2: 启动环境依赖容器 ```angular2html # 启动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 ``` ### step3: 下载项目 ```angular2html git clone https://gitee.com/hyjsunny/yeti.git # 设置项目名 export PROJECTNAME=yeti ``` ### step4: 修改配置文件 ```angular2html mkdir -p /etc/$PROJECTNAME cp $PROJECTNAME/etc/config.ini.simple /etc/$PROJECTNAME/config.ini vim /etc/$PROJECTNAME/config.ini sql_connection = "your sql connection string" cached_backend = "your redis connection string" listen = "listen address" port = "listen port" ``` ### step5: 构建并启动容器 ```angular2html \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/helloword {"result": "hello word"} ``` # 目录结构说明 ### [项目目录结构说明](docs/dir_scheme.md#项目结构说明) # 接口开发 ### [接口开发](docs/api.md#接口开发说明) # 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#命令行脚本)