python - django怎么从数据库取数据?
阿神
阿神 2017-04-18 09:21:39
[Python讨论组]
阿神
阿神

闭关修行中......

全部回复(6)
高洛峰
  1. 文档上都说了,我想翻文档的效率并不比求人低

高洛峰

怎么会问这种问题,这种问题直接查文档更清楚

迷茫

这取决于你通过orm怎么构造sql语句
比如你的表是user,你建了一个model叫User

users = User.objects.all()
就相当于select * from user

users = User.objects.all().values('id')
就相当于select id from user
大家讲道理

在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.这里有中文版

高洛峰

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))
巴扎黑

建议看看文档,或者先看djangobook虽然版本有点老

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号