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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
Python随机生成数据后插入到PostgreSQL
Jul 28 Python
Python中字符串格式化str.format的详细介绍
Feb 17 Python
解决python3 网络请求路径包含中文的问题
May 10 Python
Python数据结构之图的应用示例
May 11 Python
Django保护敏感信息的方法示例
May 09 Python
用Python实现最速下降法求极值的方法
Jul 10 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
基于Django统计博客文章阅读量
Oct 29 Python
Python笔记之代理模式
Nov 20 Python
python中如何使用insert函数
Jan 09 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 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
centos 5.6 升级php到5.3的方法
2011/05/14 PHP
PHP+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
jQuery 源码分析笔记(5) jQuery.support
2011/06/19 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
JavaScript实现职责链模式概述
2018/01/25 Javascript
解决vue路由后界面没有变化,但是链接有的问题
2018/09/01 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
记录Django开发心得
2014/07/16 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
网易有道2017内推编程题 洗牌(python)
2019/06/19 Python
Python使用Slider组件实现调整曲线参数功能示例
2019/09/06 Python
python脚本后台执行方式
2019/12/21 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
大专生自我鉴定范文
2013/10/01 职场文书
一份婚庆公司创业计划书
2014/01/11 职场文书
营销团队口号
2014/06/06 职场文书
团队会宣传标语
2014/10/09 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
物业工程部岗位职责
2015/02/11 职场文书
灵魂歌王观后感
2015/06/17 职场文书
大学生社区义工服务心得体会
2016/01/22 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis
Java对文件的读写操作方法
2022/04/29 Java/Android