/flask-restful-example

flask后端开发接口示例,利用Flask开发后端API接口。包含基本的项目配置、统一响应、MySQL和Redis数据库操作、定时任务、图片生成、项目部署、用户权限认证、报表输出、无限层级生成目录树、阿里云手机验证码验证、微信授权、Celery、单元测试、Drone等模块。

Primary LanguagePythonMIT LicenseMIT

flask-restful-example

flask后端开发接口示例,利用Flask开发后端API接口。包含基本的项目配置、统一响应、MySQL和Redis数据库操作、定时任务、图片生成、项目部署、用户权限认证、报表输出、无限层级生成目录树、阿里云手机验证码验证、微信授权、Celery、单元测试、Drone等模块。

一、系列文章

  1. Flask后端实践 连载一 加载yaml配置文件
  2. Flask后端实践 连载二 yaml配置logger及logger使用
  3. Flask后端实践 连载三 接口标准化及全球化
  4. Flask后端实践 连载四 接口响应封装及自定义json返回类型
  5. Flask后端实践 连载五 Flask与SQLAlchemy的集成和简单使用
  6. Flask后端实践 连载六 基于Flask与SQLAlchemy的单表接口
  7. Flask后端实践 连载七 Flask使用redis数据库
  8. Flask后端实践 连载八 Docker+Gunicorn+Nginx部署Flask后端
  9. Flask后端实践 连载九 Flask-APScheduler定时任务与坑点解决方法
  10. Flask后端实践 连载十 Flask图形验证码生成及验证
  11. Flask后端实践 番外篇 Docker部署优化
  12. Flask后端实践 连载十一 Flask实现JsonWebToken的用户认证授权
  13. Flask后端实践 连载十二 Flask优雅的注册蓝图及自定义MethodView
  14. Flask后端实践 连载十三 Flask输出Excel报表
  15. Flask后端实践 连载十四 Flask输出World报表
  16. Flask后端实践 连载十五 实现自关联无限层级生成目录树
  17. Flask后端实践 连载十六 Flask实现微信Web端及APP端登录注册
  18. Flask后端实践 连载十七 Flask实现手机验证码登录注册
  19. Flask后端实践 连载十八 Flask输出PDF报表
  20. Flask后端实践 连载十九 Flask工厂模式集成使用Celery
  21. Flask后端实践 连载二十 Flask接口单元测试+测试报告+测试覆盖率
  22. Python基于Drone的CI-CD(代码检查、测试、构建、部署)实践

二、部署

1. 拉取代码

  • 切换到/projects目录(没有就先新建目录sudo mkdir /projects),执行命令cd /projects
  • 执行命令sudo git clone https://github.com/qzq1111/flask-restful-example.git拉取代码
  • 切换到/projects/flask-restful-example目录,执行命令cd /projects/flask-restful-example

2. 构建镜像

  • 在当前目录/projects/flask-restful-example中构建镜像
  • 执行命令sudo docker build . -t=flask-restful-example:latest构建,等待构建完成
  • 执行命令sudo docker images,查询构建好的镜像flask-restful-example

3. 运行容器

  • 在当前目录/projects/flask-restful-example中运行容器
  • 执行命令sudo docker-compose up -d
  • 执行命令sudo docker ps查询容器是否运行

4. 配置修改

4.1 config/config.yaml配置

  • SQLALCHEMY_DATABASE_URI:数据连接
  • REDIS_HOST:Redis连接,此处如果使用的是docker-compose的link,修改为对应服务名称默认为flask_redis

4.2 docker-compose配置

  • image:构建的镜像名称
  • container_name:启动之后容器名称
  • ports:容器端口与宿主端口映射
  • volumes:容器内部文件与宿主文件映射(持久化)
  • links:链接的容器,容器之间使用服务名访问

4.3 gun.conf配置

  • bind:flask启动端口。一般不用修改,服务在容器内启动的。
  • worker_class:flask启动的模式,有许多支持启动的方式,按需取舍。

4.4 nginx配置

server {
        listen       5000;
        server_name  localhost;

        # api代理转发
        location /api {
            proxy_redirect  off;
            proxy_set_header    Host $host;
            proxy_set_header    X-Real-IP            $remote_addr;
            proxy_set_header    X-Forwarded-For      $proxy_add_x_forwarded_for;
            proxy_set_header    X-Forwarded-Proto    $scheme;
            proxy_pass http://127.0.0.1:3010/api;
        }
       # 报表下载
       location /report {
         alias /projects/flask-restful-example;
       }
    } 

5.备注

  • 修改配置文件之后最好重启容器,sudo docker-compose restart
  • 如果有任何问题可以加扣扣:472597709

三、写在最后

文章中的内容来自于本人工作中的总结,希望通过这一系列的文章,能够帮助到更多使用Flask开发后端接口的朋友。

四、赞赏

如果觉得对你有帮助,也可以请我吃个午饭。

微信¥9.9 支付宝¥9.9