在Python的Django框架中获取单个对象数据的简单方法
相对列表来说,有些时候我们更需要获取单个的对象, `` get()`` 方法就是在此时使用的:
>>> Publisher.objects.get(name="Apress") <Publisher: Apress>
这样,就返回了单个对象,而不是列表(更准确的说,QuerySet)。 所以,如果结果是多个对象,会导致抛出异常:
>>> Publisher.objects.get(country="U.S.A.") Traceback (most recent call last): ... MultipleObjectsReturned: get() returned more than one Publisher -- it returned 2! Lookup parameters were {'country': 'U.S.A.'}
如果查询没有返回结果也会抛出异常:
>>> Publisher.objects.get(name="Penguin") Traceback (most recent call last): ... DoesNotExist: Publisher matching query does not exist.
这个 DoesNotExist 异常 是 Publisher 这个 model 类的一个属性,即 Publisher.DoesNotExist。在你的应用中,你可以捕获并处理这个异常,像这样:
try: p = Publisher.objects.get(name='Apress') except Publisher.DoesNotExist: print "Apress isn't in the database yet." else: print "Apress is in the database."
相关推荐
-
在Django的URLconf中使用命名组的方法
在我们想要捕获的URL部分上加上小括号,Django 会将捕获的文本作为位置参数传递给视图函数. 在更高级的用法中,还可以使用 命名 正则表达式组来捕获URL,并且将其作为关键字参数传给视图. 一个 Python 函数可以使用关键字参数或位置参数来调用,在某些情况下,可以同时进行使用. 在关键字参数调用中,你要指定参数的名字和传入的值. 在位置参数调用中,你只需传入参数,不需要明确指明哪个参数与哪个值对应,它们的对应关系隐含在参数的顺序中. 例如,考虑这个简单的函数: def sell(item
-
在Django的视图中使用form对象的方法
在学习了关于Form类的基本知识后,你会看到我们如何把它用到视图中,取代contact()代码中不整齐的部分. 一下示例说明了我们如何用forms框架重写contact(): # views.py from django.shortcuts import render_to_response from mysite.contact.forms import ContactForm def contact(request): if request.method == 'POST': form =
-
Django中对数据查询结果进行排序的方法
在你的 Django 应用中,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序. 那么,使用 order_by() 这个方法就可以搞定了. >>> Publisher.objects.order_by("name") [<Publisher: Apress>, <Publisher: O'Reilly>] 跟以前的 all() 例子差不多,SQL语句里多了指定排序的部分: SELECT id, name, address, city,
-
在Python的Django框架中获取单个对象数据的简单方法
相对列表来说,有些时候我们更需要获取单个的对象, `` get()`` 方法就是在此时使用的: >>> Publisher.objects.get(name="Apress") <Publisher: Apress> 这样,就返回了单个对象,而不是列表(更准确的说,QuerySet). 所以,如果结果是多个对象,会导致抛出异常: >>> Publisher.objects.get(country="U.S.A.") T
-
Python的Django框架中设置日期和字段可选的方法
设置字段可选 在摆弄了一会之后,你或许会发现管理工具有个限制:编辑表单需要你填写每一个字段,然而在有些情况下,你想要某些字段是可选的. 举个例子,我们想要Author模块中的email字段成为可选,即允许不填. 在现实世界中,你可能没有为每个作者登记邮箱地址. 为了指定email字段为可选,你只要编辑Book模块(回想第五章,它在mysite/books/models.py文件里),在email字段上加上blank=True.代码如下: class Author(models.Model): f
-
Python的Django框架中forms表单类的使用方法详解
Form表单的功能 自动生成HTML表单元素 检查表单数据的合法性 如果验证错误,重新显示表单(数据不会重置) 数据类型转换(字符类型的数据转换成相应的Python类型) Form相关的对象包括 Widget:用来渲染成HTML元素的工具,如:forms.Textarea对应HTML中的<textarea>标签 Field:Form对象中的一个字段,如:EmailField表示email字段,如果这个字段不是有效的email格式,就会产生错误. Form:一系列Field对象的集合,负责验证和
-
python django框架中使用FastDFS分布式文件系统的安装方法
一.安装FastDFS 1-1:执行docker命令安装 # 安装tracker docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs youkou1/fastdfs tracker # 安装storage docker run -dti --network=host --name storage -e TRACKER_SERVER=IP地址:22122 -v /var/fdfs/storage:
-
Python的Django框架实现数据库查询(不返回QuerySet的方法)
一.创建模型类: # -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models class Course(models.Model): """课程表""" name = models.CharField(verbose_name='课程名称', max_length=255) description = models.Tex
-
Java中获取类路径classpath的简单方法(推荐)
如下所示: <SPAN style="FONT-SIZE: 18px"> System.out.println("++++++++++++++++++++++++"); String path = System.getProperty("java.class.path"); String path2 = FreeMarkerWriter.class.getProtectionDomain().getCodeSource().getLo
-
在Python的Django框架中加载模版的方法
为了减少模板加载调用过程及模板本身的冗余代码,Django 提供了一种使用方便且功能强大的 API ,用于从磁盘中加载模板, 要使用此模板加载API,首先你必须将模板的保存位置告诉框架. 设置的保存文件就是settings.py. 如果你是一步步跟随我们学习过来的,马上打开你的settings.py配置文件,找到TEMPLATE_DIRS这项设置吧. 它的默认设置是一个空元组(tuple),加上一些自动生成的注释. TEMPLATE_DIRS = ( # Put strings here, li
-
全面剖析Python的Django框架中的项目部署技巧第1/2页
项目开始时是一个关键时刻,选择会对项目产生长期的影响.有很多关于如何开始使用Django框架的教程,但很少讨论如何专业地使用Django,或如何使用行业公认的最佳做法来确保你的项目规模的持续增长.事前的筹划让你(和所有同事的生活)在走向将来时更容易. 文章结束时,你将有 一个全功能的Django 1.6项目 源代码受控的所有资源(使用Git或Mercurial) 自动回归和单元测试(使用unittest库) 一个独立于特定环境的安装项目(使用virtualenv) 自动化的部署和测试(使用Fab
-
Python的Django框架中使用SQLAlchemy操作数据库的教程
零.SQLAlchemy是什么? SQLAlchemy的官网上写着它的介绍文字: SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. SQLAlchemy 是一个非常强大的ORM和数据库工具,但是它庞大的文档和复杂的功能总是让很 多人望而生畏.而Django的ORM相对来说
-
Python的Django框架中消息通知的计数器实现教程
故事的开始:.count() 假设你有一个Notification Model类,保存的主要是所有的站内通知: class Notification(models.Model): """一个简化过的Notification类,拥有三个字段: - `user_id`: 消息所有人的用户ID - `has_readed`: 表示消息是否已读 """ user_id = models.IntegerField(db_index=True) has_re
随机推荐
- Delphi XE5 为Android应用制作签名的方法(图文)
- JDBC增删改查和查唯一的完整代码解析
- Oracle学习笔记(一)
- php 无限级分类 获取顶级分类ID
- 玩转python selenium鼠标键盘操作(ActionChains)
- Android开机自启动服务的实现方法
- 不错的PHP学习之php4与php5之间会穿梭一点点感悟
- 如何在Flash中处理Cookies?
- 在到达无H无F境界前~还是要痛苦~我兼容浏览器的CSS
- SQLSERVER的排序问题结果不是想要的
- jquery.validate使用攻略 第三部
- jQuery手机浏览器中拖拽动作的艰难性分析
- jQuery ajax的功能实现方法详解
- JS控制按钮10秒钟后可用的方法
- 华为面试题数字大小写转换
- 了解路由器中的管理间距和量度参数
- Python模块文件结构代码详解
- vue实现图片滚动的示例代码(类似走马灯效果)
- Android不规则封闭区域填充色彩的实例代码
- 详解java_ 集合综合案例:斗地主