一。table.objects.get()方法是从数据库的取得一个匹配的结果,返回一个对象,如果记录不存在的话,它会报错。
而且该方法为完全匹配查询。若通过该方法进行模糊查询,会报:DoesNotExist: Event matching query does not exist.的异常。
举例:
1.完全匹配查询
>> e1 = Event.objects.get(name='xiaomi')
>> e1
结果:<Event: one add>
>>e1.address
结果:u'changanlu'
2.模糊查询(正确的情况下,会有xiaomi,heimi等)
>> Event.objects.get(name='mi')
报错如下:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "D:\python_install\python2\lib\site-packages\django\db\models\manager.py"
, line 122, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "D:\python_install\python2\lib\site-packages\django\db\models\query.py",
line 387, in get
self.model._meta.object_name
DoesNotExist: Event matching query does not exist.
二。table.objects.filter()方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在的话,它会返回[]。
该方法可进行模糊查询
举例:
>>> Event.objects.filter(name__contains='mi') #说明:此处是两个下划线。contains 部分会被Django 翻译成LIKE 语句
结果:
[<Event: hongmi pro>, <Event: heimi pro>, <Event: dami pro>]