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 输出一个两行字符的变量
Feb 05 Python
python和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
python遍历 truple list dictionary的几种方法总结
Sep 11 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Python闭包函数定义与用法分析
Jul 20 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
python线程中的同步问题及解决方法
Aug 29 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
基于python实现蓝牙通信代码实例
Nov 19 Python
PyQt5多线程防卡死和多窗口用法的实现
Sep 15 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
Nov 24 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正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
JS实现self的resend
2010/07/22 Javascript
extjs render 用法介绍
2013/09/11 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
简介AngularJS中$http服务的用法
2016/02/06 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
eslint 的三大通用规则详解
2019/05/16 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
Python yield 使用浅析
2015/05/28 Python
通过Python 获取Android设备信息的轻量级框架
2017/12/18 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Python 使用matplotlib模块模拟掷骰子
2019/08/08 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
什么是python类属性
2020/06/10 Python
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
市场部专员岗位职责
2013/11/30 职场文书
小学生成长感言
2014/01/30 职场文书
2014年廉洁自律承诺书
2014/05/26 职场文书
公司领导班子对照材料
2014/08/18 职场文书
公务员党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
优秀班主任先进事迹材料
2014/12/16 职场文书
2015年班组工作总结
2015/04/20 职场文书
教你解决往mysql数据库中存入汉字报错的方法
2021/05/06 MySQL
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL