使用Django 测试客户端一起测试视图,模板和URL
Django 测试客户端
self.client.get(url) 测试客户端是Django中TestCase类的一个属性名.
至此已经在网站中可以创建一个清单了。
那么,现在是可以在unit test中测试新建的清单了
为新建清单添加了一个视图函数,并映射给了url ‘^/Lists/new$'. 在哪里使用它呢? 在首页的新建清单 form的Action中指定这个url。
目前的实现是:
1. get 首页,打开首页。能看到 输入待办事项的清单。
2. post 首页,可以创建一个list.并在list中显示该待办事项。打开的是新建list的 url
3. post list 页面。能看到新建的待办事项
目前的问题是:
1. 目前只能有一个list
2. 一个list中显示所有的待办事项,不能隔离。
解决问题:
处理隔离问题,必须修改模型,新建一个 List 类。并让类和item 关联起来. 需要用到 model的知识。
List是单独的自己: 在url中使用正则式,加入一个捕获组 (.+) ,捕获到的文本会作为参输传入视图
Item 每个Item应该存在某个List中。
捕获组 (.+)不仅可以捕获 /(.+)/ 也可以捕获 /((.+)/new_item ..... 所以 写url时,要避免使用的正则式,匹配太广.
response = self.client.get('/Lists/%id/' % (correct_list.id,))
self.assertEqual(response.context['list'],correct_list) # response.context 表示要传入render函数的上下文。 Django客户端把上下文附在response对象上,方便测试.
template 中:
{% for new_item_text in list.item_set.all %} # .item_set 叫做反向查询。是Django提供的非常有用的ORM功能。可以在其他表中查询某个对象的相关纪录。
所以在template的from中。可以传入一个modle实例。然后根据这个实例找相关的其他对象实例:
<form method="POST" action='/Lists/{{list.id}}/new'>
<input name="item_text" id="id_new_item" placeholder="Enter a to-do item" />
{% csrf_token %}
</form>
<table id="id_list_table">
{% for new_item_text in list.item_set.all %}
<tr><td>{{ forloop.counter}}: {{new_item_text.text}}</td></tr>
{% endfor %}
</table>
使用Django 测试客户端一起测试视图,模板和URL的更多相关文章
- 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组
真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...
- django创建app、在视图函数及url中使用参数、url命名、通过redirect实现网页路径跳转
app用来实现一个独立的功能,视图一般都写在app的view.py中,并且视图的第一个参数永远是request,视图的返回值必须是HttpResponseBase对象或子类的对象. 创建一个app:f ...
- Django学习系列8:django测试客户端
"""向浏览器返回真正的HTML响应,添加一个新的测试方法""" from django.test import TestCase from ...
- Django 1.6 的测试驱动开发
http://www.oschina.net/translate/django-1-6-test-driven-development 测试驱动开发(TDD)是一个迭代的开发周期,强调编写实际代码之前 ...
- 启用WCF测试客户端的相关技巧
在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开.第二 ...
- 《LDAP服务器的配置与客户端的测试》RHEL6——第一篇 运维工程师必考
ldap这种原始的服务器搭建起来比较复杂,同时它也是CE必考的(客户端的搭建). 服务器端的配置: 1.安装openldap-servers软件包 2.查看ldap模板文件的存放位置: 3.拷贝lda ...
- Django基础(路由、视图、模板)
目录导航 Django 路由控制 Django 视图层 Django 模版层 Django 路由控制 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用 ...
- 使用WCF测试客户端 z
http://blog.csdn.net/u013036274/article/details/50570989 [是什么] WCF测试客户端(WCF Test Client)是一个用来测试WCF服务 ...
- Django系列(二):Django的路由层,视图层和模板层
1.Django的路由层 URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:我们就是以这种方式告诉Django,对于客户端发来的某 ...
随机推荐
- Java 语言 ArrayList 和 JSONArray 相互转换
Java 语言 ArrayList 和 JSONArray 相互转换 本篇主要讲解 ArrayList 和 fastjson 中的 JSONArray相互转换的几种常用方式,以实体类 Student. ...
- 网络编程[第一篇]基于tcp协议的套接字编程
将服务端-客户端的连接比作双方打电话的过程 2019-07-24 一.客户端 主动的一方: 客户端实例化一个socket对象--> 主动像服务端发送连接请求--> (服务端接受请求后即可进 ...
- DMA存储器到存储器传输代码讲解
M to M:Flash to Sram,把内部flash的数据传输到内部SRAM(DRAM主要存放的是变量, flash 主要存放代码) M to P: SRAM to 串口,同时LED闪烁,演示D ...
- (七)Action之ActionContext(OGNL表达式的使用)
一.ActionContext的重要性 struts中的数据都存放在ActionContext里,所以这部分是Action中的核心. ActionContext又称广义值栈,既然有广义值栈就有侠义值栈 ...
- Java HeapSort
Java HeapSort /** * <html> * <body> * <P> Copyright 1994-2018 JasonInternational & ...
- [JZOJ5279]香港记者题解--最短路图
[JZOJ5279]香港记者题解--最短路图 题目链接 过 于 暴 力 分析 有一个naiive的想法就是从1到n跑最短路,中途建图,然后在图上按字典序最小走一遍,然而·这是不行的,你这样跳不一定能跳 ...
- 编程模型&编程思想
编程模型 1.面向对象编程OOP 2.面向切面编程AOP Java静态接口,Java动态代理,字节码提升. 面向切面的两个方面: 拦截判断:方法,注解,参数,异常 拦截执行:前置,后置,返回,异常 3 ...
- 基于【 centos7】四 || FastDFS集群+Nginx负载均衡
1. 架构设计 1.1 架构图 FastDFS是用c语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用F ...
- JavaScript--Function对象(函数)的声明和作用域
Funtion 封装了可重复使用的代码块对象,函数名是一个引用函数对象的变量 声明提前:在程序开始执行之前,将var 变量和function函数提前声明 但赋值并不会提前 它的三种创建方法: 创建1 ...
- Layui 实现input 输入和选择
<div class="layui-col-md4"> <label class="layui-form-label">移交单位< ...