假如我数据库表有一个id name message 三个字段 我取到了id 那么name 和 message会不会也跟着取出来啊? 我主要想问一下 怎么取出全部数据并把这些数据赋值给一个变量?
在python里面一切皆对象,使用Django的ORM模型直接可以把要查询的对象取出来。
如果你数据库中表名为MyUser,里面有三个字段id name message,表里有三行数据
id name message
1 user1 message1
2 user2 message2
3 user3 message3
如果你想全部取出可以
users = MyUser.objects.all()
你现在的变量user已经是包含三行数据,下面代码将依次遍历三个用户,输出相应数据。
for user in users:
print user.id, user.name, user.message
PS:遇到问题先查谷歌或者 官方文档 ,如果解决不了再提问,对你以后的成长很有帮助的。如果是刚入门的话,可以读官方文档的Tutorials.这里有中文版
建议看看文档,或者先看djangobook虽然版本有点老
Django支持ORM模型,你对一个数据表的操作可以抽象成对一个对象的的操作。
举个例子,在models.py下定义一个表,这个表的id字段是自动生成的,这样定义一个有id,url和status字段的表
class Url(models.Model):
url = models.URLField(unique=True)
status = models.BooleanField(default=False)
def __str__(self):
return self.url
通过Filter和get方法可以进行查询,下面查询一个url值为u的数据,两个方法都返回一个符合查询要求的Url对象的列表。他们的区别是如果为空的话Filter返回的是空列表,而get返回的是空error。
kw = Url.objects.get(url=u)
kw = Url.objects.filter(url=u)
取出全部数据可以用all方法来操作,相当于select * from tables
kw = Url.object.all()
对于获得的对象列表kw,可以进行迭代来获取每一个对象,并通过对象变量操作的方法获得每个字段的值。
for u in kw:
url = u.url
status = u.status
print("%s : %s" % (url, status))
会
文档上都说了,我想翻文档的效率并不比求人低
怎么会问这种问题,这种问题直接查文档更清楚
这取决于你通过orm怎么构造sql语句
比如你的表是user,你建了一个model叫User
users = User.objects.all()
就相当于select * from user
users = User.objects.all().values('id')
就相当于select id from user