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

yipeiwu_com5年前Python基础

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

需求

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

环境

Python3.6 ,PyCharm,W7

项目结构

功能实现

流程

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

安装

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

⑤:我们请求试试看

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

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

后续

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

实现异步接口

实现定时任务

这篇Django 自动生成api接口文档教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

对python中的乘法dot和对应分量相乘multiply详解

向量点乘 (dot) 和对应分量相乘 (multiply) : >>> a array([1, 2, 3]) >>> b array([ 1.,...

Python3.5以上版本lxml导入etree报错的解决方案

Python3.5以上版本lxml导入etree报错的解决方案

在python中安装了lxml-4.2.1,在使用时发现导入etree时IDE中报错Unresolved reference 其实发现,不影响使用,可以正常运行,对于我这种要刨根问底的...

Python实现的将文件每一列写入列表功能示例【测试可用】

Python实现的将文件每一列写入列表功能示例【测试可用】

本文实例讲述了Python实现的将文件每一列写入列表功能。分享给大家供大家参考,具体如下: # -*- coding: utf-8 -*- #! python3 ''' python...

解决python写入mysql中datetime类型遇到的问题

刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一...

Python numpy线性代数用法实例解析

Python numpy线性代数用法实例解析

这篇文章主要介绍了Python numpy线性代数用法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 numpy中线性代数用法...