Django REST framework 单元测试实例解析
这篇文章主要介绍了Django REST framework 单元测试实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
环境
Win10
Python3.7
Django2.2
项目
参照官网 快速开始 写了一个 demo
测试
参照官网 测试
和 Django 的测试差不多
创建 tutorial/tests/tests.py
import json from django.test import TestCase from rest_framework import status from rest_framework.test import APIClient class LittleTestCase(TestCase): def setUp(self): self.click = APIClient() def test_users_post(self): # /users/ POST data = { "username": "tom", "email": "tom@example.com" } response = self.client.post("/users/", data) self.assertEqual(response.status_code, status.HTTP_201_CREATED) # /users/:id GET 地址 response_content = json.loads(response.content) user_url = response_content["url"] # /users/:id GET 检查新增用户是否符合预期 response = self.client.get(user_url) response_content = json.loads(response.content) self.assertEqual(response.status_code, 200) self.assertEqual("tom", response_content["username"]) self.assertEqual("tom@example.com", response_content["email"])
执行测试
python manage.py test <测试文件所在目录>
python manage.py test tests/
测试结果
执行一个测试成功
测试前创建测试数据库,测试完毕删除数据库
Creating test database for alias 'default'... System check identified no issues (0 silenced). . ---------------------------------------------------------------------- Ran 1 test in 0.022s OK Destroying test database for alias 'default'...
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
django rest framework vue 实现用户登录详解
后端代码就不介绍了,可以参考 django rest framework 实现用户登录认证 这里介绍一下前端代码,和前后端的联调过程 在components下新建login.vue 文件 <template> <div class="login"> <el-form label-width="80px"> <el-form-item label="用户名"> <el-input v-model
-
Python Django框架单元测试之文件上传测试示例
本文实例讲述了Python Django框架单元测试之文件上传测试.分享给大家供大家参考,具体如下: Submitting files is a special case. To POST a file, you need only provide the file field name as a key, and a file handle to the file you wish to upload as a value. For example: >>> c = Client()
-
Django rest framework jwt的使用方法详解
一简介 JWT 是一个开放标准(RFC 7519),它定义了一种用于简洁,自包含的用于通信双方之间以 JSON 对象的形式安全传递信息的方法.该信息可以被验证和信任,因为它是数字签名的.JWTS可以使用秘密(使用HMAC算法)或公钥/私钥对使用RSA或ECDSA来签名. JWT的组成部分: header Header是由下面这个格式的Json通过Base64编码(编码不是加密,是可以通过反编码的方式获取到这个原来的Json,所以JWT中存放的一般是不敏感的信息)生成的字符串,Header中存放的
-
django-rest-framework 自定义swagger过程详解
前言 之前的文章编写了一个返回json的例子,直接用浏览器进行get请求虽然成功了, 但是接口文档的样式很难看, 不好用. 而且提示没有访问权限. 我们一般都希望能够直接在接口文档中进行请求, 以测试接口, 本篇文章中会给出一个自定义swagger(openapi)的例子. 使接口文档变得美观可用, 可以填写参数, 可以进行请求以观察数据格式, 测试接口是否可用. 环境 workon python35 pip list chardet (3.0.4) coreapi (2.3.3) coresc
-
对Python的Django框架中的项目进行单元测试的方法
Python中的单元测试 我们先来回顾一下Python中的单元测试方法. 下面是一个 Python的单元测试简单的例子: 假如我们开发一个除法的功能,有的同学可能觉得很简单,代码是这样的: def division_funtion(x, y): return x / y 但是这样写究竟对还是不对呢,有些同学可以在代码下面这样测试: def division_funtion(x, y): return x / y if __name__ == '__main__': print division
-
django rest framework 实现用户登录认证详解
1.安装 pip install djangorestframework 2.创建项目及应用 创建项目 创建应用 目录结构如图 3.设置settings.py 设置数据库连接 # MySQL 增加mysql 连接 DATABASES = { 'default':{ 'ENGINE':'django.db.backends.mysql', 'HOST':'127.0.0.1', 'PORT':'3306', 'NAME':'dbname', # 数据库名 'USER':'username', 'P
-
Django单元测试工具test client使用详解
The test client test client是一个python类,来模拟一个简单的"哑"浏览器,允许你来测试你的view函数.你可以使用test client完成下列事情: 1.模拟"Get"和"Post"请求,观察响应结果--从HTTP(headers,status codes)到页面内容. 2.检查重定向链(如果有的话),在每一步检查URL和status code. 3.用一个包括特定值的模板context来测试一个request被
-
Django使用unittest模块进行单元测试过程解析
Django测试框架非常简单,首选方法是使用python标准库中的unittest模块. Writing tests Django的单元测试使用python的unittest模块,这个模块使用基于类的方法来定义测试.类名为django.test.TestCase,继承于python的unittest.TestCase. from django.test import TestCase from myapp.models import Animal class AnimalTestCase(Tes
-
Django REST framework 单元测试实例解析
这篇文章主要介绍了Django REST framework 单元测试实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 环境 Win10 Python3.7 Django2.2 项目 参照官网 快速开始 写了一个 demo 测试 参照官网 测试 和 Django 的测试差不多 创建 tutorial/tests/tests.py import json from django.test import TestCase from rest_
-
深度解析Django REST Framework 批量操作
我们都知道Django rest framework这个库,默认只支持批量查看,不支持批量更新(局部或整体)和批量删除. 下面我们来讨论这个问题,看看如何实现批量更新和删除操作. DRF基本情况 我们以下面的代码作为例子: models: from django.db import models # Create your models here. class Classroom(models.Model): location = models.CharField(max_length=128)
-
django在接受post请求时显示403forbidden实例解析
本文研究的主要是django在接受post请求时显示403forbidden时的处理方法,具体代码如下. 最近在做一个项目需要用到Django框架 在测试Django的时候发现一个问题,就是按照一般教程设置好URL的mapping之后,使用get请求总能得到正确的回应,但是在使用post请求时,却根本无法得到请求,会显示403forbidden: Starting development server at http://127.0.0.1:8000/ Quit the server with
-
Django数据库表反向生成实例解析
本文我们研究下如何在django中反向生成mysql model代码,接下来我们看看具体介绍. 我们在展示django ORM反向生成之前,我们先说一下怎么样正向生成代码. 正向生成,指的是先创建model.py文件,然后通过django内置的编译器,在数据库如mysql中创建出符合model.py的表. 反向生成,指的是先在数据库中create table,然后通过django内置的编译器,生成model代码. 1.准备工作 创建django工程以及app 创建django工程,名字是hell
-
django rest framework serializers序列化实例
serializers是将复杂的数据结构变成json或者xml这个格式的 serializers有以下几个作用: - 将queryset与model实例等进行序列化,转化成json格式,返回给用户(api接口). - 将post与patch/put的上来的数据进行验证. - 对post与patch/put数据进行处理. 实现序列化二个类:Serializer与ModelSerializer 比较 ModelSerializer(Serializer) 即 ModelSerializer继承了Se
-
django定期执行任务(实例讲解)
要在django项目中定期执行任务,比如每天一定的时间点抓取数据,刷新数据库等,可以参考stackoverflow的方法,先编写一个manage.py命令,然后使用crontab来定时执行这个命令. 定制manage.py命令 app可以使用manage.py注册自己的命令,比如要在polls这个app中定制一个closepoll命令,要先向polls文件夹中添加一个management/commands的目录: polls/ __init__.py models.py management/
-
django rest framework之请求与响应(详解)
前言:在上一篇文章,已经实现了访问指定URL就返回了指定的数据,这也体现了RESTful API的一个理念,每一个URL代表着一个资源.当然我们还知道RESTful API的另一个特性就是,发送不同的请求动作,会返还不同的响应,这篇文章就讲一下django-rest-framework这个工具在这方面给我们带来的便捷操作. 一.Request对象 平时我们在写Django的视图函数的时候,都会带上一个request参数,这样就能处理平时搭建网站时,浏览器访问网页时发出的常规的HttpReques
-
详解Django框架中用context来解析模板的方法
你需要一段context来解析模板. 一般情况下,这是一个 django.template.Context 的实例,不过在Django中还可以用一个特殊的子类, django.template.RequestContext ,这个用起来稍微有些不同. RequestContext 默认地在模板context中加入了一些变量,如 HttpRequest 对象或当前登录用户的相关信息. 当你不想在一系例模板中都明确指定一些相同的变量时,你应该使用 RequestContext . 例如,考虑这两个视
-
C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析
看到这篇文章的题目,估计很多人都会问,这个组件是不是有些显的无聊了,说到web通信,很多人都会想到ASP.NET SignalR,或者Nodejs等等,实现web的网络实时通讯.有关于web实时通信的相关概念问题,在这里就不再做具体的介绍了,有兴趣的可以自行百度. 下面我们介绍一款WebSocket组件websocket-sharp的相关内容. 一.websocket-sharp组件概述 websocket-sharp是一个C#实现websocket协议客户端和服务端,websocket-sha
-
Python SqlAlchemy动态添加数据表字段实例解析
本文研究的主要是Python SqlAlchemy动态添加数据表字段,具体如下. 我们知道使用SqlAlchemy创建类来映射数据表,类属性等于数据库字段,但有时候要在我们创建表的时候,不确定数据表字段数量,遇到这种情况,应如何解决? 先看常规用法 from sqlalchemy import create_engine,Column,String,Integer class Mybase(Base): #表名 __tablename__ ='mycars' #字段,属性 myid=Column
随机推荐
- ASP.NET MVC5网站开发之登录、验证和注销管理员篇1(六)
- php基于mcrypt的加密解密实例
- JavaScript中用sort()方法对数组元素进行排序的操作
- HttpClient抓取网页的两种方式
- 惠普[hp]816、817墨盒计数器清零图文教程第1/2页
- IOS 中UITextField和UITextView中字符串为空和空格的解决办法
- ASP.NET 2.0下随机读取Access记录的实现方法
- PHP实现找出有序数组中绝对值最小的数算法分析
- 推荐11个实用Python库
- Vue原理剖析 实现双向绑定MVVM
- MYSQL的binary解决mysql数据大小写敏感问题的方法
- jquery ajax传递中文参数乱码问题及解决方法说明
- 基于javascript实现泡泡大冒险网页版小游戏
- 微信小程序 连续旋转动画(this.animation.rotate)详解
- C#算法之全排列递归算法实例讲解
- jquery仿京东侧边栏导航效果
- JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
- JavaScript实现的in_array函数
- C语言借助EasyX实现的生命游戏源码
- 新版Android studio导入微信支付和支付宝官方Demo问题解决大全