python之django的objects.get和objects.filter方法

为了说明它们两者的区别定义2个models

class Student(models.Model):
name = models.CharField(‘姓名‘, max_length=20, default=‘‘)
age = models.CharField(‘年龄‘, max_length=20, default=‘‘)
class Book(models.Model):
student = models.ForeignKey(Student)

一.先说下django的obj.get():
django的get是从数据库的取得一个匹配的结果,返回一个对象,如果记录不存在的话,它会报错。
比如我数据库里有一条记录,记录的name的值是"django"的话,我用student = Student.objects.get(name=‘django‘),
返回的是一个记录对象,你可以通过student.dict来查看,它返回的是一个字典的形式,{‘key‘:valeus},key是字段的名称,而values是值的内容。
而如果我用get方法来查询一个数据库里不存在的记录,程序会报错。
比如:student = Student.objects.get(name=‘python‘)

如果你用django的get去取得关联表的数据的话,而关键表的数据如果多于2条的话也会报错。
比如我的student表里有一个记录:
id name age
1 python 24

book表:

id student_id
1 1
2 1

我用
student = Student.objects.get(name=‘python‘)
book = Book.objects.get(student)
它也会报错,因为book表有2条记录和student表相匹配。

二.再说下django filter:

django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在的话,它会返回[]。
比如我数据库里有一条记录,记录的name的值是Python的话,我用student = Student.objects.filter(name=‘python‘)
它返回的student是一个对象的列表,可以看的出来student[0]和上面的get方式返回的student的结果是一样的。

原文地址:http://blog.51cto.com/2096101/2167753

时间: 2024-10-11 13:47:07

python之django的objects.get和objects.filter方法的相关文章

在Python的Django框架中加载模版的方法

在Python的Django框架中加载模版的方法 为了减少模板加载调用过程及模板本身的冗余代码,Django 提供了一种使用方便且功能强大的 API ,用于从磁盘中加载模板, 要使用此模板加载API,首先你必须将模板的保存位置告诉框架. 设置的保存文件就是settings.py. 如果你是一步步跟随我们学习过来的,马上打开你的settings.py配置文件,找到TEMPLATE_DIRS这项设置吧. 它的默认设置是一个空元组(tuple),加上一些自动生成的注释. TEMPLATE_DIRS =

django中的objects.get和objects.filter方法的区别

为了说明它们两者的区别定义2个models class Student(models.Model): name = models.CharField('姓名', max_length=20, default='') age = models.CharField('年龄', max_length=20, default='') class Book(models.Model): student = models.ForeignKey(Student) 一.先说下django的obj.get():

Python标准库 内置函数print objects sep ' ' end '\n' file sys st

本函数是实现对象以字符串表示的方式格式化输出到流文件对象file里.其中所有非关键字参数都按str()方式进行转换为字符串输出,关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符:关键字参数end是输出结束时的字符,默认是换行符\n:关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件:参数flush是立即把内容输出到流文件,不作缓存. 例子: #print() print(1, 2, 3, sep = ',', end =

Python、Django和Mysql安装步骤

很多初学者都问Python和Django怎么安装,这里我们就简单地介绍一下这两个软件在Windows 2003下的安装步骤. 一.下载并安装Python Python 官方下载地址:http://www.python.org/ftp/python/ 我们这里选择的是 Python 2.7.2 .虽然目前最新版是Python 3.2.2, 但是Django目前还不支持 Python 3.2.2. 安装步骤很简单,双击安装包开始安装,这里我们安装到 D:\Python,如图1, 图1 单击“Next

python之django直接执行sql语句

python之django直接执行sql语句 sql = 'select * from stu' info = 模型类.objects.raw(sql)

python利用django实现简单的登录和注册,并利用session实现了链接数据库

利用session实现与数据库链接,登录模块(在views.py) def login(request): # return HttpResponseRedirect('/') # 判断是否post方式,如果是则进行下面的表单处理 if request.method == 'POST': rs = Users.objects.filter(email=request.POST.get('email'), #django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在

Python之Django框架

1.Django简介 Python下有多款不同的 Web 框架,Django是最有代表性的一种.许多成功的网站和APP都基于Django. Django是一个开源的Web应用框架,由Python写成. Django采用了MVC的软件设计模式,即模型M,视图V和控制器C. 2.Django的特点 1) 强大的数据库功能:用python的类继承,几行代码就可以拥有一个动态的数据库操作API,如果需要也能执行SQL语句. 2) 自带的强大的后台功能:几行代码就让网站拥有一个强大的后台,轻松管理内容.

Python和Django的Third Libraby分类汇总

这些第三方包与Python和Django一起构成了强大的生态系统,自己在开发时大大减小工作难度和工作量, 这些包基本上能满足我们的大部分需求.人与人的差距,其中一点是你知道的比他多,这样你就能大大提高 开发效率.Awesome-Python受Awesom-PHP的启发,而Awesome-Django又受Awesome-Python的启 发. https://github.com/vinta/awesome-python https://github.com/rosarior/awesome-dj

[Python] 利用Django进行Web开发

第一步:下载并安装django 首先,在Django官网上下载适合自己Python的Django版本,在安装Django前首先确定你已成功安装了python.         Windows系统下安装Django: 解压缩下载的Django压缩包,找到里面的setup.py文件,然后打开cmd命令窗口,在其对应的路径下执行如下命令: python setup.py install Linux系统下安装Django: 以此在shell中输入如下命令: $ tar xzvf Django-*.tar