Django 自动生成api接口文档教程


Posted in Python onNovember 19, 2019

最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现。

需求

实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化测试

环境

Python3.6 ,PyCharm,W7

项目结构

Django 自动生成api接口文档教程

功能实现

流程

Django 自动生成api接口文档教程

我们要做的就是实现以上流程

安装

pip install djangorestframework 
pip install markdown 
pip install django-filter # Filtering support

配置

INSTALLED_APPS = (
 ...
 'rest_framework',
)

编写代码(本次代码不涉及数据库操作,只简单的写一个api)

①:打开AutoApi/Api/views.py 编写如下代码

from django.http import JsonResponse, HttpResponseNotAllowed, HttpResponse
from django.views.decorators.csrf import csrf_exempt
from rest_framework.parsers import JSONParser
from rest_framework import status

@csrf_exempt
def run_job(request):
 # 判断请求头是否为json
 if request.content_type != 'application/json': 
  # 如果不是的话,返回405
  return HttpResponse('only support json data', status=status.HTTP_415_UNSUPPORTED_MEDIA_TYPE)
 # 判断是否为post 请求
 if request.method == 'POST':
  try:
   # 解析请求的json格式入参
   data = JSONParser().parse(request)
  except Exception as why:
   print(why.args)
  else:
   content = {'msg': 'SUCCESS'}
   print(data)
   # 返回自定义请求内容content,200状态码
   return JsonResponse(data=content, status=status.HTTP_200_OK)
 # 如果不是post 请求返回不支持的请求方法
 return HttpResponseNotAllowed(permitted_methods=['POST'])

②:打开AutoApi/Api/urls.py 编写如下代码

from django.conf.urls import url
from Api import views

urlpatterns = [
 url(r'^runJob/$',views.run_job),
]

③:打开AutoApi/AutoApi/urls.py 修改如下代码

ALLOWED_HOSTS = '*' # 修改为* 代码允许任意host


from django.conf.urls import url,include

urlpatterns = [
 url(r'^admin/', admin.site.urls),
 url(r'^',include('Api.urls')),# 新增
]

④:启动服务

python manage.py runserver 0.0.0.0:8080

Django 自动生成api接口文档教程

⑤:我们请求试试看

Django 自动生成api接口文档教程

以上就是简单的实现一个api ,其实开发说的接口就这么简单,没有那么神秘!

接下来把post 的数据env ,project,cases 解析出来传给对应的自动化测试入口函数,就可以实现通过接口请求,启动自动化测试的目的。

后续

实现接口调用自动化测试项目

实现异步接口

实现定时任务

这篇Django 自动生成api接口文档教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
python实现文件快照加密保护的方法
Jun 30 Python
详细介绍Python的鸭子类型
Sep 12 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
python 接收处理外带的参数方法
Dec 03 Python
Python使用matplotlib绘制三维参数曲线操作示例
Sep 10 Python
python @propert装饰器使用方法原理解析
Dec 25 Python
Python3变量与基本数据类型用法实例分析
Feb 14 Python
使用python客户端访问impala的操作方式
Mar 28 Python
python实例化对象的具体方法
Jun 17 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 Python
自动在Windows中运行Python脚本并定时触发功能实现
Sep 04 Python
wxpython实现按钮切换界面的方法
Nov 19 #Python
Python性能分析工具Profile使用实例
Nov 19 #Python
使用apiDoc实现python接口文档编写
Nov 19 #Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 #Python
Python浮点数四舍五入问题的分析与解决方法
Nov 19 #Python
python 上下文管理器及自定义原理解析
Nov 19 #Python
浅析python中while循环和for循环
Nov 19 #Python
You might like
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
详谈PHP文件目录基础操作
2014/11/11 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
为什么Python中没有"a++"这种写法
2018/11/27 Python
python实现控制台打印的方法
2019/01/12 Python
python单线程文件传输的实例(C/S)
2019/02/13 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python ATM功能实现代码实例
2020/03/19 Python
python音频处理的示例详解
2020/12/23 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
美国瑜伽服装和装备购物网站:Mukha Yoga
2019/02/22 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
工商管理实习生自我鉴定范文
2013/12/18 职场文书
小学教育见习总结
2015/06/23 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书
MATLAB 如何求取离散点的曲率最大值
2021/04/16 Python
Java如何实现树的同构?
2021/06/22 Java/Android
python中pymysql包操作数据库方法
2022/04/19 Python