博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 Flask-Docs 自动生成 Api 文档
阅读量:6295 次
发布时间:2019-06-22

本文共 4800 字,大约阅读时间需要 16 分钟。

影响我写文档的原因可能是代码和文档分离,有时候写完代码会忘记补文档,而且不能及时查看,使用 Flask-Docs 可以解决我的问题,这个插件可以根据代码注释生成文档页面,代码注释改动文档可以及时更新,而且支持离线文档下载。

Flask Api 文档自动生成插件

特性

  • 根据代码注释自动生成文档
  • 支持 Flask-RESTful
  • 支持离线 markdown 文档下载

安装

pip install Flask-Docs

使用

from flask import Flaskfrom flask_docs import ApiDocapp = Flask(__name__)# 本地加载# app.config['API_DOC_CDN'] = False# 禁用文档页面# app.config['API_DOC_ENABLE'] = False# 需要显示文档的 Apiapp.config['API_DOC_MEMBER'] = ['api', 'platform']# 需要排除的 RESTful Api 文档app.config['RESTFUL_API_DOC_EXCLUDE'] = []ApiDoc(app)

如何书写 markdown 格式文档

@@@
在注释结尾用 "@@@" 包含 markdown 格式文档
@@@

查看文档页面

Api demo

@api.route('/add_data', methods=['POST'])def add_data():    """Add some data    Add some data in this routing    Args:        pass    Returns:        pass    """    return jsonify({'api': 'add data'})

图片描述

@api.route('/del_data', methods=['POST'])def del_data():    """Del some data    @@@    #### args    | args | nullable | type | remark |    |--------|--------|--------|--------|    |    title    |    false    |    string   |    blog title    |    |    name    |    true    |    string   |    person's name    |    #### return    - ##### json    > {"msg": "success", "code": 200}    @@@    """    return jsonify({'api': 'del data'})

图片描述

@platform.route('/get_something', methods=['GET'])def get_something():    """    @@@    #### example        import requests        url='http://127.0.0.1:5000/api/get_something'        try:            print requests.get(url).text        except:            pass    @@@    """    return jsonify({'platform': 'get something'})

图片描述

完整代码

#!/usr/bin/env python# -*- coding:utf-8 -*-from flask import Flask, render_template, jsonify, Blueprintfrom flask_docs import ApiDocapp = Flask(__name__)# Local loading# app.config['API_DOC_CDN'] = False# Disable document pages# app.config['API_DOC_ENABLE'] = False# Api Document needs to be displayedapp.config['API_DOC_MEMBER'] = ['api', 'platform']ApiDoc(app)api = Blueprint('api', __name__)platform = Blueprint('platform', __name__)@api.route('/add_data', methods=['POST'])def add_data():    """Add some data    Add some data in this routing    Args:        pass     Returns:        pass    """    return jsonify({'api': 'add data'})@api.route('/del_data', methods=['POST'])def del_data():    """Del some data    @@@    #### args    | args | nullable | type | remark |    |--------|--------|--------|--------|    |    title    |    false    |    string   |    blog title    |    |    name    |    true    |    string   |    person's name    |    #### return    - ##### json    > {"msg": "success", "code": 200}    @@@    """    return jsonify({'api': 'del data'})@platform.route('/get_something', methods=['GET'])def get_something():    """    @@@    #### example        import requests        url='http://127.0.0.1:5000/api/get_something'        try:            print requests.get(url).text        except:            pass    @@@    """    return jsonify({'platform': 'get something'})app.register_blueprint(api, url_prefix='/api')app.register_blueprint(platform, url_prefix='/platform')if __name__ == '__main__':    app.run(host='0.0.0.0', port=5000, debug=True)

Flask-RESTful Api demo

from flask_restful import Resource, Apiclass TodoList(Resource):    """Manage todolist"""    def post(self):        """Submission of data        Args:            pass        Returns:            pass        """        return {'todos': 'post todolist'}    def get(self):        """        @@@        #### args        | args | nullable | type | remark |        |--------|--------|--------|--------|        |    id    |    false    |    int   |    todo id    |        #### return        - ##### json        > {...}        @@@        """        return {'todos': 'get todolist'}restful_api.add_resource(TodoList, '/todolist')

图片描述

图片描述

完整代码

#!/usr/bin/env python# -*- coding:utf-8 -*-from flask import Flaskfrom flask_restful import Resource, Apifrom flask_docs import ApiDocapp = Flask(__name__)# Local loading# app.config['API_DOC_CDN'] = False# Disable document pages# app.config['API_DOC_ENABLE'] = False# RESTful Api documents to be excludedapp.config['RESTFUL_API_DOC_EXCLUDE'] = []restful_api = Api(app)ApiDoc(app)class TodoList(Resource):    """Manage todolist"""    def post(self):        """Submission of data        Args:            pass            Returns:            pass        """        return {'todos': 'post todolist'}    def get(self):        """        @@@        #### args        | args | nullable | type | remark |        |--------|--------|--------|--------|        |    id    |    false    |    int   |    todo id    |        #### return        - ##### json        > {...}        @@@        """        return {'todos': 'get todolist'}restful_api.add_resource(TodoList, '/todolist')if __name__ == '__main__':    app.run(host='0.0.0.0', port=5000, debug=True)

转载地址:http://gsvta.baihongyu.com/

你可能感兴趣的文章
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
阿里感悟(十八)- 应届生Review
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>