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

yipeiwu_com6年前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编程之字符串模板(Template)用法实例分析

Python编程之字符串模板(Template)用法实例分析

本文实例讲述了Python编程之字符串模板(Template)用法。分享给大家供大家参考,具体如下: #coding=utf8 ''''' 字符串格式化操作符,需要程序员明确转换类型...

Python选课系统开发程序

Python选课系统开发程序

本文程序针对Python选课系统进行开发,供大家参考,具体内容如下 角色:学校、学员、课程、讲师 要求: 1. 创建北京、上海 2 所学校 2. 创建linux , python , g...

Python易忽视知识点小结

这里记录Python中容易被忽视的小问题 一、input(...)和raw_input(...) #简单的差看帮助文档input(...)和raw_input(...)有如下区别...

python自动查询12306余票并发送邮箱提醒脚本

python自动查询12306余票并发送邮箱提醒脚本

由于车票难抢,有时需要的车票已经售空,而我们需要捡漏,便可使用这个脚本。 具体实现了,自动查询某一车票的余票数量,当数量产生变化时,将自动发送QQ邮件到对于的邮箱进行提醒。 其中,发送邮...

用Python实现校园通知更新提醒功能

用Python实现校园通知更新提醒功能

前言 这个项目实已经在一个月前已经完成了,一直都想写一篇博客来总结这个过程中遇到的一些问题。但最近一个月来都比较忙,所以一直拖到了现在。 首先说说起因吧,我没事的时候,总喜欢依次点开学校...