多啰嗦两句

我们在创建flask项目的时候,使用pycharm创建出来的项目比较简陋,而且随着项目的功能完善,项目目录结构会比较多,多个项目结构又不统一,熟悉项目需花费时间比较多,项目发布配置又需要自己重新写一套。本文章是针对Flask Restful Api项目进行的快速初始化,对于没有前后端分离的Flask项目也可作为参考。

安装rflask

pip安装:

pip install rflask

下载源码安装:

源码地址:https://github.com/Deacone/rflask

依次执行命令:

$ git clone https://github.com/Deacone/rflask
$ cd rflask
$ python setup.py install

检验是否安装成功

$ rflask --help
Usage: rflask [OPTIONS] COMMAND [ARGS]... A general utility script to init flask restful project. Example: $ rflask init Options:
--version
--help Show this message and exit. Commands:
init Init restful project. or $ rflask --version
1.0.8

初始化项目

$ rflask init
* project_name: [flask-restful-api-20200125-090404] <your_project_name>
* author: [Deacon] <your_name>
* author_email: [deacon@example.com] <your_email>
* description: [Flask restful api project.] <project_description>
...
...
Create file /Users/donghp/Downloads/Git_doc/PythonProject/init-flask-restful-api/flask-restful-api-20200125-090404/supervisord_example.conf Done.

初始化完目录结构如下:

    .
├── applications
│   ├── test
│   │   ├── README.rst
│   │   ├── __init__.py
│   │   ├── models.py
│   │   ├── urls.py
│   │   └── views.py
│   ├── user
│   │   ├── README.rst
│   │   ├── __init__.py
│   │   ├── models.py
│   │   └── views.py
│   └── __init__.py
├── enums
│   └── __init__.py
├── exceptions
│   ├── __init__.py
│   └── project_excepions.py
├── flask_ext
│   ├── __init__.py
│   └── logger.py
├── logs
├── requirements
│   ├── dev.txt
│   └── prod.txt
├── scripts
│   └── __init__.py
├── utils
│   ├── __init__.py
│   └── commands.py
├── Dockerfile
├── LICENSE
├── Pipfile
├── README.rst
├── __init__.py
├── app.py
├── autoapp.py
├── compat.py
├── database.py
├── docker-compose.yml
├── extensions.py
├── gunicorn.conf.py
├── gunicorn_example.conf.py
├── settings.py
├── setup.py
├── supervisord.conf
└── supervisord_example.conf

项目结构说明:

目录

  • applications:app应用,包含了models、urls、views,app的数据结构、url映射、视图函数都是在这里完成的
  • enums: 系统枚举模块
  • exceptions: 系统异常模块
  • flask_ext: 自定义flask扩展模块
  • logs: 系统log保存
  • scripts: 系统脚本模块
  • utils: 工具模块

文件

  • .env: 系统环境变量配置
  • Dockerfile: 构建docker使用的文件
  • LICENSE: 开源协议,默认MIT
  • Pipfile: pipenv安装包依赖文件
  • README.rst: 文档
  • init.py:
  • app.py: flask 入口文件
  • autoapp.py: flask工厂文件
  • compat.py: 兼容py2文件
  • database.py: 数据库数据处理文件
  • docker-compose.yml: docker-compose 配置文件
  • extensions.py: flask扩展应用初始化文件
  • gunicorn.conf.py: gunicorn配置文件
  • settings.py: 系统配置文件
  • setup.py: 打包配置文件
  • supervisord.conf: supervisor配置文件

开发环境初始化

$ cd your_project
$ pip install pipenv
$ pipenv install --dev
$ pipenv run python app.py

说明:如果已经安装了pipenv,就不需要第二步了。

如果不使用pipenv管理虚拟环境,则执行下面的命令:

$ cd your_project
$ pip3 install -r requirements/dev.txt
$ python3 app.py

同步db 数据结构

$ flask db init
$ flask db migrate
$ flask db upgrade

部署到docker

$ git clone your_project.git
$ cd <your_project>
$ docker-compose up

Enjoy your code.

如何用rflask快速初始化Flask Restful项目的更多相关文章

  1. 快速创建Flask Restful API项目

    前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用flask来提供中型甚至大型web restful a ...

  2. 通过beego快速创建一个Restful风格API项目及API文档自动化

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  3. 通过beego快速创建一个Restful风格API项目及API文档自动化(转)

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  4. Hexo快速构建个人小站-Hexo初始化和将项目托管在Github(一)

    背景交代 相信每个程序员都有自己做过个人网站,博客之类的项目了,但是现在还在维护吗?反正我前前后后做过2到3个了,维护一段时间后因为一些不可逆的原因(主要是懒)都没有维护了,购买的一些域名和服务器信息 ...

  5. 如何用脚本快速修改IP地址(Netsh)

    如何用脚本快速修改IP地址(Netsh) 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了.最近一个项目经常要切换ip,所以我写了两个脚本:c:\116.bat netsh interfa ...

  6. Python Flask Restful

    Flask  Restful 1.flask restful 在flask基础上进行一些封装,主要用于实现restful接口 2.restful的理解 1)URI(统一资源标识符):每一个URI代表一 ...

  7. 如何用Baas快速在腾讯云上开发小程序-系列4:实现客户侧商品列表、商品详情页程序

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/431172001487671163 来源:腾云阁 h ...

  8. C数组&结构体&联合体快速初始化

    背景 C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序. C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元 ...

  9. Flask租房项目总结

    该Flask项目历时3天,开发小组6人,目的是开发一个租房web项目,该项目采用前后端分离模式. Flask租房项目总结 分析需求文档,需要完成的功能模块有: 登陆注册 首页展示,首页搜索 详情展示, ...

随机推荐

  1. 【23.68%】【hdu 2871】Memory Control

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

  2. 基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

    基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎 网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并 ...

  3. sparksql 练习题两道

    第一题:select '{"id":1,"name":{"url":"http://xxx/yyy/zz/test.js" ...

  4. Android APP开发内容图片不显示

    I/Glide: Root cause (1 of 1) Cause (1 of 1): class java.io.FileNotFoundException: No content provide ...

  5. anaconda在本地安装软件conda install

    安装完anaconda后,想在mac下安装pytorch,但是在用官网提供的安装方法一直安装不上pytorch和torchvision,估计是被墙了 conda install pytorch tor ...

  6. 初识Contiv

    Contiv是一个用于跨虚拟机.裸机.公有云或私有云的异构容器部署的开源容器网络架构.作为业界最强大的容器网络架构,Contiv具有2层.3层.overlay和ACI模式,能够与思科基础设施进行本地集 ...

  7. Android7_安卓的知识体系梳理

    最近梳理了一下安卓的知识体系,先构建一个整体性的认知,也作为以后的学习路线的依据. [一.从原理角度出发]1.Activity生命周期和启动模式2.View的事件体系与工作原理3.四大组件的工作过程4 ...

  8. hibernate配置文件模板

    hibernate.cfg.xml 配置文件模版: <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-config ...

  9. Java面向对象程序设计第9章1-9

    Java面向对象程序设计第9章1-9 1. 线程和进程的联系和区别是什么? 联系: 一个进程可以包括多个线程. 区别: 进程: 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是系统 ...

  10. 支撑百万级并发,Netty如何实现高性能内存管理

    Netty作为一款高性能网络应用程序框架,实现了一套高性能内存管理机制 通过学习其中的实现原理.算法.并发设计,有利于我们写出更优雅.更高性能的代码:当使用Netty时碰到内存方面的问题时,也可以更高 ...