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的更多相关文章

  1. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  2. django创建app、在视图函数及url中使用参数、url命名、通过redirect实现网页路径跳转

    app用来实现一个独立的功能,视图一般都写在app的view.py中,并且视图的第一个参数永远是request,视图的返回值必须是HttpResponseBase对象或子类的对象. 创建一个app:f ...

  3. Django学习系列8:django测试客户端

    """向浏览器返回真正的HTML响应,添加一个新的测试方法""" from django.test import TestCase from ...

  4. Django 1.6 的测试驱动开发

    http://www.oschina.net/translate/django-1-6-test-driven-development 测试驱动开发(TDD)是一个迭代的开发周期,强调编写实际代码之前 ...

  5. 启用WCF测试客户端的相关技巧

    在Visual Studio之外打开WCF测试客户端有两种方法:第一种方法是到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开.第二 ...

  6. 《LDAP服务器的配置与客户端的测试》RHEL6——第一篇 运维工程师必考

    ldap这种原始的服务器搭建起来比较复杂,同时它也是CE必考的(客户端的搭建). 服务器端的配置: 1.安装openldap-servers软件包 2.查看ldap模板文件的存放位置: 3.拷贝lda ...

  7. Django基础(路由、视图、模板)

    目录导航 Django 路由控制 Django 视图层 Django 模版层 Django 路由控制 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用 ...

  8. 使用WCF测试客户端 z

    http://blog.csdn.net/u013036274/article/details/50570989 [是什么] WCF测试客户端(WCF Test Client)是一个用来测试WCF服务 ...

  9. Django系列(二):Django的路由层,视图层和模板层

    1.Django的路由层 URL配置(URLconf)就像Django所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:我们就是以这种方式告诉Django,对于客户端发来的某 ...

随机推荐

  1. VC++:创建,调用MFC动态链接库(扩展DLL)

    概述 DLL(Dynamic Linkable Library)动态链接库,Dll可以看作一种仓库,仓库中包含了可以直接使用的变量,函数或类. 仓库的发展史经历了"无库" ---& ...

  2. 基于搜索的贝叶斯网络结构学习算法-K2

    基于搜索的贝叶斯网络结构学习算法-K2 2018-04-05 19:34:18 ItsBlue 阅读数 3172更多 分类专栏: 贝叶斯网络 网络结构学习   版权声明:本文为博主原创文章,遵循CC ...

  3. MySQL 多列排序

    MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...

  4. maftools|TCGA肿瘤突变数据的汇总,分析和可视化

    本文首发于公众号“生信补给站”,https://mp.weixin.qq.com/s/WG4JHs9RSm5IEJiiGEzDkg 之前介绍了使用maftools | 从头开始绘制发表级oncoplo ...

  5. java基础知识学习 内存相关

    Java 内存分配策略 静态存储区(方法区):主要存放静态数据.全局 static 数据和常量.这块内存在程序编译时就已经分配好,并且在程序整个运行期间都存在. 栈区 :当方法被执行时,方法体内的局部 ...

  6. SQL Server 2017 左补齐

    DECLARE @NUM CHAR(3)='7  'SELECT RIGHT('0000000'+CONVERT(VARCHAR(50),1+ RTRIM(@NUM)),7) ​​​​

  7. SQL将同样标识的查询结果查重并用逗号拼接

    SELECT B.TaskID , LEFT(SamList, LEN(SamList) - 1) AS ResultListFROM ( SELECT TaskID , ( SELECT Sampl ...

  8. FlowPortal BPM 验证组的使用方法

    1.在表单上指定验证组 2.在流程上指定验证组 3.启用多个验证组 流程审批线上设置验证组时可以设置多个验证组,多个验证组之间以分号分割,如:AAA;BBB.

  9. Linux学习笔记(六)Linux常用命令:关机、重启以及系统运行级别

    一.shutdown命令 shutdown [选项] [时间] 常用选项 -c 取消前一个关机命令 -h 关机 -r 重启 shutdown命令关机或重启会保存当前系统正在使用的资源,因此关机或重启最 ...

  10. (17)for循环

    # 把容器里数据拿出来的这个过程 可以叫遍历 迭代 循环 listvar = [1, 2, 3, 4, 5] print(len(listvar)) # 算出列表里面所有元素的个数,len是计算长度 ...