1 Star 0 Fork 0

lolik / fastapi_test

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README

快速开始 https://github.com/2412322029/fastapi_test/releases/tag/bulid

pip install --no-index --find-links=packages -r requirements.txt

python app.py
  • server

    • fastapi sqlalchemy aiomysql实现 RESTful API与api文档自动生成,pydantic数据校验
    • 前后端鉴权使用OAuth2 实现 Bearer JWT 令牌
    • slowapi限制api速率
    • Pillow库生成简单验证码,文本文件缓存验证码
  • client

    • vite + ts

    • vue3 + vue-router + navie-ui

    • openapi-generate-typescript自动生成axios请求代码

    • markdown解析和高亮使用highlight.js,编辑器v-md-editor

  • feature

    • 访问统计
    • 导出excel
    • 图片压缩上传
    • 暗色模式
    • 有用的命令行参数python app.py -h查看
    • optional(main.ts文件中可选开启)
      • 基于websocket 显示在线用户及其所在路径
      • 服务器监控(psutil库)
      • websocket聊天室

docker部署nginx,mysql,python3.10,nginx反向代理/api路径(api都以/api开头)单独代理/docs,/openapi.json路径的api文档,/uploads路径挂载文件上传的目录其他路径匹配回退路由

目录结构

├─static // vite构建目录
|   ├─dist //nginx静态文件挂载
├─data/mysql //mysql数据,docker挂载目录
├─uploads //文件上传目录
├─utill //验证码生成/校验,cpu监控
├─api //fastapi子路由,数据校验模型
├─sql //数据库连接,crud代码,orm模型
├─config //读取配置文件,环境变量
├─app.py //fastapi主文件
├─config.yaml //主要是mysql信息,fasapi配置
├─...如其名

后端

  1. python>3.10 pip安装依赖

  2. 最好使用虚拟环境

pip install -r requirements.txt

导出

pip download -d packages/ -r requirements.txt

离线安装导入

pip install --no-index --find-links=packages -r requirements.txt
  1. 配置

修改config.yaml

修改数据库用户名密码,创建数据库,数据库名填入dbname

修改默认用户名密码

  1. 启动
python app.py

前端

在 static 目录

  1. 安装依赖
npm install
  1. openapi生成代码
npm run generate-client
  1. api url 和 img baseurl

docker部署

git clone https://github.com/2412322029/fastapi_test

编译前端代码,git clone 后上传覆盖dist目录

docker-compose up -d

前后端分离部署

后端填写mysql数据库信息到配置文件,或通过环境变量(覆盖前者),配置跨域,pip安装依赖,启动app.py

在main.ts中,修改后端api的url, 图片baseurl

前端代码静态部署(处理回退路由)

其他

修改config.yaml中的密钥,compose.yaml的mysql密码,保持mysql容器和python容器密码一致

nginx反向代理ws:

location /{
            proxy_pass   http://0.0.0.0:8000;
        }
        location /api/websocket/ {
            proxy_hide_header X-Frame-Options;
            proxy_pass  http://0.0.0.0:8000;

            #代理ws
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_set_header Origin ""; 
        }

最大文件上传限制:config.yaml中的是python代码中写的限制,还取决于nginx配置文件中client_max_body_size(10m)

TODO

  • tag -添加-删除 -(修改)
  • 用户管理

image-20230506225558239

image-20230506225922997

image-20230506225902139

image-20230517165643460

image-20230517165217549

image-20230517165507761

Empty file

About

fastapi_test expand collapse
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
Python
1
https://gitee.com/qwe2412322029/fastapi_test.git
git@gitee.com:qwe2412322029/fastapi_test.git
qwe2412322029
fastapi_test
fastapi_test
master

Search