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中input()与raw_input()的区别分析
Feb 27 Python
Python字符串格式化输出方法分析
Apr 13 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
python实现稀疏矩阵示例代码
Jun 09 Python
Python入门之三角函数全解【收藏】
Nov 08 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
python抓取需要扫微信登陆页面
Apr 29 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
python TK库简单应用(实时显示子进程输出)
Oct 29 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
May 22 Python
解决python便携版无法直接运行py文件的问题
Sep 01 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
如何提高MYSQL数据库的查询统计速度 select 索引应用
2007/04/11 PHP
PHP curl使用实例
2015/07/02 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
PHP运用foreach神奇的转换数组(实例讲解)
2018/02/01 PHP
PHP fclose函数用法总结
2019/02/15 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
jQuery实现时尚漂亮的弹出式对话框实例
2015/08/07 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
详解Angular 4.x NgIf 的用法
2017/05/22 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
详解Nuxt.js部署及踩过的坑
2018/08/07 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
python+selenium开发环境搭建图文教程
2017/08/11 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
通用自荐信范文
2014/03/14 职场文书
年终考核实施方案
2014/05/26 职场文书
高中班级口号
2014/06/09 职场文书
电话客服工作职责
2014/07/27 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2015年大学生实习评语
2015/03/25 职场文书
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
Vue OpenLayer 为地图绘制风场效果
2022/04/24 Vue.js
HttpClient实现表单提交上传文件
2022/08/14 Java/Android