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之编写类之一创建实例
Oct 11 Python
Python实现处理管道的方法
Jun 04 Python
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
Python使用functools实现注解同步方法
Feb 06 Python
Python sklearn KFold 生成交叉验证数据集的方法
Dec 11 Python
python集合是否可变总结
Jun 20 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
10个Python面试常问的问题(小结)
Nov 20 Python
appium+python adb常用命令分享
Mar 06 Python
Python模拟键盘输入自动登录TGP
Nov 27 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
phpMyadmin 用户权限中英对照
2010/04/02 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
原生javascript上传图片带进度条【实例分享】
2017/04/06 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
vue配置文件实现代理v2版本的方法
2019/06/21 Javascript
vue实现点击按钮下载文件功能
2019/10/11 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
python对数组进行反转的方法
2015/05/20 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
全面了解python字符串和字典
2016/07/07 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
python用requests实现http请求代码实例
2019/10/31 Python
Python解析多帧dicom数据详解
2020/01/13 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
外企C语言笔试题
2013/11/10 面试题
C++面试题:关于链表和指针
2013/06/05 面试题
中学生评语大全
2014/04/18 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
岗位聘任协议书
2015/09/21 职场文书
比较node.js和Deno
2021/04/27 Javascript
Python打包exe时各种异常处理方案总结
2021/05/18 Python
Nginx反向代理配置的全过程记录
2021/06/22 Servers
Python使用openpyxl模块处理Excel文件
2022/06/05 Python