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 相关文章推荐
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
Python编程中的反模式实例分析
Dec 08 Python
Python在groupby分组后提取指定位置记录方法
Apr 20 Python
django认证系统实现自定义权限管理的方法
Jul 16 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
Pandas的read_csv函数参数分析详解
Jul 02 Python
python区块及区块链的开发详解
Jul 03 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
python如何判断IP地址合法性
Apr 05 Python
python MD5加密的示例
Oct 19 Python
利用Python如何画一颗心、小人发射爱心
Feb 21 Python
python 如何在测试中使用 Mock
Mar 01 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
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
解决ThinkPHP关闭调试模式时报错的问题汇总
2015/04/22 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
JavaScript 浮点数运算 精度问题
2009/10/06 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
2012/12/26 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
angularJs自定义过滤器实现手机号信息隐藏的方法
2018/10/08 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
使用python装饰器验证配置文件示例
2014/02/24 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Python部署web开发程序的几种方法
2017/05/05 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
Python+OpenCv制作证件图片生成器的操作方法
2019/08/21 Python
使用python远程操作linux过程解析
2019/12/04 Python
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
大学新生军训方案
2014/05/03 职场文书
停车场管理协议书范本
2014/10/08 职场文书
抄袭同学作业检讨书1000字
2014/11/20 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript