使用Django 测试客户端一起测试视图,模板和URL

使用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>

转载于:https://www.cnblogs.com/ahMay/p/8721068.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107597.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PowerShell AD 管理

    PowerShell AD 管理

    2022年2月21日
    105
  • 手把手教你Charles抓包工具使用

    手把手教你Charles抓包工具使用Charles简介Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request,response和HTTPheaders(包含cookies与caching信息)。Charles主要功能支持SSL代理。可以截取分析SSL的请求。支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。支持AJ

    2022年4月28日
    66
  • shell基础学习总结

    shell基础学习总结shell基础教程,里面包含代码

    2022年8月11日
    7
  • linux发邮件失败,Linux SendMail发送邮件失败诊断案例,sendmail发送邮件

    linux发邮件失败,Linux SendMail发送邮件失败诊断案例,sendmail发送邮件LinuxSendMail发送邮件失败诊断案例,sendmail发送邮件Linux上Sendmail经常由于一些配置问题,导致邮件发送失败,下面整理、收集了一些邮件发送失败、异常的案例。案例1:在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查/var/log/maillog日志文件发现如下错误(Notice:hostname、邮箱地址等信息使用xxx代替)tail/var/…

    2022年10月20日
    2
  • SM2246EN+闪迪15131

    SM2246EN+闪迪15131由于正常的SM2246EN开卡工具不会有闪迪15131的数据,所以我们要先进行一点骚操作A773=SanDisk,1Tbit(16K),15131SanDisk,1Tbit(16K),15131=45,3C,A5,93,7E,D0,2,08,10,0,4036,4096,2,9,5,256,4,16,1280,3,180,8F,27,30,2,5F,21,29,1,2,1,52,51,0,A2,0,1,0,0,C0,99,99,99,99,12,26,99,99,77,77,77,77,0,0,..

    2022年6月11日
    69
  • pandas groupby 用法详解

    pandas groupby 用法详解1.分组groupby在日常数据分析过程中,经常有分组的需求。具体来说,就是根据一个或者多个字段,将数据划分为不同的组,然后进行进一步分析,比如求分组的数量,分组内的最大值最小值平均值等。在sql中,就是大名鼎鼎的groupby操作。pandas中,也有对应的groupby操作,下面我们就来看看pandas中的groupby怎么使用。2.groupby的数据结构首先我们看如下代码defddd():levels=[“L1″,”L1″,”L1″,”L2″,”L2″,”L3”,

    2022年5月13日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号