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爬虫入门教程--正则表达式完全指南(五)
May 25 Python
详解python中asyncio模块
Mar 03 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
对python读取CT医学图像的实例详解
Jan 24 Python
python中seaborn包常用图形使用详解
Nov 25 Python
Python networkx包的实现
Feb 14 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
Python Selenium实现无可视化界面过程解析
Aug 25 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
PHP 数组基本操作小结(推荐)
2016/06/13 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
实例讲解PHP表单处理
2019/02/15 PHP
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
2016/12/30 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
python发送邮件接收邮件示例分享
2014/01/21 Python
python3实现随机数
2018/06/25 Python
Python WEB应用部署的实现方法
2019/01/02 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python3人脸识别的两种方法
2019/04/25 Python
python多线程同步实例教程
2019/08/11 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
酒店应聘自荐信
2013/11/09 职场文书
销售文员岗位职责
2013/11/29 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
求职信名称怎么写
2014/05/26 职场文书
感恩父母主题班会
2015/08/12 职场文书
2019教师的学习计划
2019/06/25 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
vue3获取当前路由地址
2022/02/18 Vue.js
详解Python中的for循环
2022/04/30 Python
Python使用openpyxl模块处理Excel文件
2022/06/05 Python