使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 新浪微博爬虫分享(一天可抓取 1300 万条数据)「建议收藏」

    From:https://blog.csdn.net/bone_ace/article/details/50903178微博爬虫单机每日千万级的数据微博爬虫总结:https://blog.csdn.net/nghuyong/article/details/81251948Python爬虫——新浪微博(网页版):https://blog.csdn.net/qq_37267015/ar…

    2022年4月15日
    50
  • 卡尔曼滤波(KF)与扩展卡尔曼滤波(EKF)的一种理解思路及相应推导(1)

    卡尔曼滤波(KF)与扩展卡尔曼滤波(EKF)的一种理解思路及相应推导(1)前言:从上个世纪卡尔曼滤波理论被提出,卡尔曼滤波在控制论与信息论的连接上做出了卓越的贡献。为了得出准确的下一时刻状态真值,我们常常使用卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波、粒子滤波等等方法,这些方法在姿态解算、轨迹规划等方面有着很多用途。卡尔曼滤波的本质是参数化的贝叶斯模型,通过对下一时刻系统的初步状态估计(即状态的先验估计)以及测量得出的反馈相结合,最终得到下一时刻较为准确的的状态估计

    2022年6月28日
    46
  • LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER编译安装配置

    LINUX+APACHE+MYSQL+PHP+SVN+SVNMANAGER编译安装配置

    2021年8月13日
    53
  • android之activity中onSaveInstanceState和onRestoreInstanceState触发时机

    先看Application Fundamentals上的一段话:  Android calls onSaveInstanceState() before the activity becomes vulnerable to being destroyed by the system, but does not bother calling it when the instance is a

    2022年3月10日
    35
  • 古典概率c30怎么算_概率分为古典概率和什么概率

    古典概率c30怎么算_概率分为古典概率和什么概率》》点赞,收藏+关注,理财&技术不迷路《《目录:3.古典概率ClassicalProbability频率概率:古典概型:这个例子,n的区别就是指定和没有指定。后面365*364*******意思是每个人的生日都不一样,就是一个排列。题目要求的至少两人,它的对立面就是少于两人,那意思就是每一个人的生日都不一样。4.几何概率geometricprobability面积示例:思考下面这种问题方式,不用从几何导代数,要依靠几..

    2022年10月19日
    0
  • Java解析XML字符串「建议收藏」

    Java解析XML字符串「建议收藏」在网上找了很多Java语言解析XML字符串的资料,很多内容写得很繁复,没有普适性,遂自己动手写了一个用Java解析XML的工具类。话不多说,直接看下面代码:XML解析工具类:importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.Node;importorg.dom4j.io.SAXReader;importjava.io.ByteArrayInputStream;importjava.

    2022年6月4日
    183

发表回复

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

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