Django学习之数据库API

it2025-04-01  19

进入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>]

 

转载于:https://www.cnblogs.com/tmyyss/p/4368957.html

相关资源:python建站django框架与数据库交互的简单学习代码
最新回复(0)