首页 > 数据库技术 > 详细

Django学习之数据库API

时间:2015-03-26 16:52:30      阅读:306      评论:0      收藏:0      [点我收藏+]

进入Python交互控制台

python manage.py shell

之所以用上面的命令,而不是python,是因为manage.py设置了DJANGO_SETTINGS_MODULE环境变量。不需要我们手动去导入django模块。

导入Blog模型类

from blog.models import Blog

接下来,我们来学习一下数据库API

1、查询Blog中的所有数据

>>> Blog.objects.all()
[]
>>> 

因为,我们还没有插入任何数据,所以返回的是空的list。

2、插入数据

首先创建一个用户,因为存在外键User

>>> from django.contrib.auth.models import User
>>> User.objects.create(username=tmyyss)
<User: tmyyss>
>>> User.objects.all()
[<User: tmyyss>]

下面我们插入一条数据到Blog数据库

>>> user=User.objects.get(username=tmyyss)
>>> user
<User: tmyyss>
>>> blog=Blog.objects.create(user=user,title="Test,Test",text="you share roses get fun")
>>> blog
<Blog: Blog object>

3、通过blog实例访问相应的对象属性

>>> blog.id
4L
>>> blog.user
<User: tmyyss>
>>> blog.title
Test,Test
>>> blog.text
you share roses get fun
>>> blog.created_time
datetime.datetime(2015, 3, 26, 6, 42, 17, 839353, tzinfo=<UTC>)
>>> blog.published_time
>>> 

我们也改变属性值

>>> blog.title="HA HA! That funny"
>>> blog.save()
>>> blog
<Blog: Blog object>

咦,没有变化,为什么呢?通过查看官方文档得知,需要修改Blog模型,

修改的Blog模型如下

from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone

# Create your models here.
class Blog(models.Model):
        user=models.ForeignKey(User)
        title=models.CharField(max_length=200)
        text=models.TextField()
        created_time=models.DateTimeField(default=timezone.now)
        published_time=models.DateTimeField(blank=True,null=True)

        def __unicode__(self):
                return self.title

重新运行python manage.py shell

>>> from blog.models import Blog
>>> Blog.objects.all()
[<Blog: HA HA! That funny>]

现在我们就能看见我们修改的内容。

4、过滤

为了方便演示效果,再添加两个Blog对象

>>> from django.contrib.auth.models import User
>>> 
>>> 
>>> user=User.objects.get(username=tmyyss)
>>> Blog.objects.create(user=user,title=I love Python.,text=I love Python,I love python)
<Blog: I love Python.>
>>> Blog.objects.create(user=user,title=I love Django.,text=I love Django,I love Django)
<Blog: I love Django.>


过滤使用关键词filter

>>> Blog.objects.filter(id=6)
[<Blog: I love Django.>]
>>> Blog.objects.filter(title=I love Python.)
[<Blog: I love Python.>]

5、排序

排序使用关键词

>>> Blog.objects.order_by(-created_time)
[<Blog: I love Django.>, <Blog: I love Python.>, <Blog: HA HA! That funny>]
>>> Blog.objects.order_by(-id)
[<Blog: I love Django.>, <Blog: I love Python.>, <Blog: HA HA! That funny>]
>>> Blog.objects.order_by(-title)
[<Blog: I love Python.>, <Blog: I love Django.>, <Blog: HA HA! That funny>]

 

Django学习之数据库API

原文:http://www.cnblogs.com/tmyyss/p/4368957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!