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多进程同步简单实现代码
Apr 27 Python
Python中的字符串替换操作示例
Jun 27 Python
python僵尸进程产生的原因
Jul 21 Python
Python快速查找list中相同部分的方法
Jun 27 Python
python求最大连续子数组的和
Jul 07 Python
程序员写Python时的5个坏习惯,你有几条?
Nov 26 Python
python 中xpath爬虫实例详解
Aug 26 Python
Python print不能立即打印的解决方式
Feb 19 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
Python用access判断文件是否被占用的实例方法
Dec 17 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
详解Python类和对象内容
Jun 22 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
PHP.MVC的模板标签系统(二)
2006/09/05 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
jquery click([data],fn)使用方法实例介绍
2013/07/08 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
instanceof和typeof运算符的区别详解
2014/01/06 Javascript
面向切面编程(AOP)的理解
2015/05/01 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
js实现烟花特效
2020/03/02 Javascript
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
如何在python中判断变量的类型
2020/07/29 Python
Python实现弹球小游戏
2020/08/01 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
strstr()的简单实现
2013/09/26 面试题
计算机专业个人求职信范例
2013/09/23 职场文书
精彩的推荐信范文
2013/11/26 职场文书
给客户的感谢信
2015/01/21 职场文书
学雷锋日活动总结
2015/02/06 职场文书
员工自我工作评价
2015/03/06 职场文书
端午节寄语2015
2015/03/23 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书
导游词之神仙居景区
2019/11/15 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python