如何用rflask快速初始化Flask Restful项目
多啰嗦两句
我们在创建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项目的更多相关文章
- 快速创建Flask Restful API项目
前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用flask来提供中型甚至大型web restful a ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- Hexo快速构建个人小站-Hexo初始化和将项目托管在Github(一)
背景交代 相信每个程序员都有自己做过个人网站,博客之类的项目了,但是现在还在维护吗?反正我前前后后做过2到3个了,维护一段时间后因为一些不可逆的原因(主要是懒)都没有维护了,购买的一些域名和服务器信息 ...
- 如何用脚本快速修改IP地址(Netsh)
如何用脚本快速修改IP地址(Netsh) 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了.最近一个项目经常要切换ip,所以我写了两个脚本:c:\116.bat netsh interfa ...
- Python Flask Restful
Flask Restful 1.flask restful 在flask基础上进行一些封装,主要用于实现restful接口 2.restful的理解 1)URI(统一资源标识符):每一个URI代表一 ...
- 如何用Baas快速在腾讯云上开发小程序-系列4:实现客户侧商品列表、商品详情页程序
版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/431172001487671163 来源:腾云阁 h ...
- C数组&结构体&联合体快速初始化
背景 C89标准规定初始化语句的元素以固定顺序出现,该顺序即待初始化数组或结构体元素的定义顺序. C99标准新增指定初始化(Designated Initializer),即可按照任意顺序对数组某些元 ...
- Flask租房项目总结
该Flask项目历时3天,开发小组6人,目的是开发一个租房web项目,该项目采用前后端分离模式. Flask租房项目总结 分析需求文档,需要完成的功能模块有: 登陆注册 首页展示,首页搜索 详情展示, ...
随机推荐
- 【HTML/CSS】BFC
块格式化上下文(Block formatting contexts) BFC是什么? 是Web页面中盒模型布局的CSS渲染模式.它的定位体系属于常规文档流. 至少满足条件之一: float 的值不为 ...
- javascript基础的一些总结
一 闭包 各种专业文献上的"闭包"(closure)定义非常抽象,很难看懂.我的理解是,闭包就是能够读取其他函数内部变量的函数. 由于在Javascript语言中,只有函数内部的子 ...
- Linux 内核子系统
一个子系统是作为一个整体对内核一个高级部分的代表. 子系统常常(但是不是一直)出现 在 sysfs 层次的顶级. 一些内核中的例子子系统包括 block_subsys(/sys/block, 给块 设 ...
- 【39.87%】【BZOJ 1880】[Sdoi2009]Elaxia的路线
Time Limit: 4 Sec Memory Limit: 64 MB Submit: 1041 Solved: 415 [Submit][Status][Discuss] Descripti ...
- oracle中update语句修改多个字段
如需要修改下列数据:表名为student 一般会这样写: update student set sname = '李四', sage = 20, sbirthday = to_date('2010-0 ...
- .net core 读取Excal文件数据及注意事项
添加ExcelDataReader.DataSet引用. 调用下列方法: public class XlsHelper { public static System.Data.DataSet GetX ...
- Kubernetes从私有镜像仓库中拉取镜像
当我们尝试从私有仓库中拉取镜像时,可能会收到这样提示:requested access to the resource is denied Error response from daemon: pu ...
- 用WPF实现大数据分析,超炫的效果,还带地图
开头语 经过一段时间研究,终于实现CS和BS相同效果的大数据展示平台了.首先来看看实现的效果,超炫的效果,客户特别喜欢,个人也非常满意,分享给各位,同大家一起交流学习. 大数据展示平台 从上图可以看出 ...
- DEVOPS技术实践_14:使用docker部署jenkins
一 基础环境准备 [root@node6 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node6 ~]# yum -y ...
- 小白进阶之路-python格式化输出
1.不使用格式化前:传值时比较麻烦而且不精确. 2.格式化输出后,%代表先占个位,s代表字符串,%s代表这里之后会传一个字符串类型的值,%s其实可以接受任意类型的值:%d传入的值要求必须是数字. %s ...