Django 学习笔记

操控数据库

2018-03-24  本文已影响3人  一块大番薯

python 命令:只是进入交互式环境
python manage.py shell:进入交互式环境,设置好环境变量

In [2]: c = Category(name='category test')

In [3]: c.save()

c.save() 后,c 引用指向的对象已存入数据库 db.splite3 中。
退出交互栏后,c 引用将删除,但已存入 db.splite3 的对象仍存在。
如果没有调用 save 方法,退出交互栏后,引用和对象都被销毁

查、取

In [12]: Category.objects.all()
Out[12]: <QuerySet [<Category: Category object>]>

In [13]: Category.objects.get(name='category test')
Out[13]: <Category: Category object>

all 方法返回全部记录,存放在类似于列表的数据结构(QuerySet)
get 方法返回一条记录,如有多条或没有记录,均抛出异常
Category.objects 返回模型管理器(objects)

返回值中,Category object 用来记录对象的描述,
为了更准确地描述一个记录对象,
可在相应的类 Category 中,定义 _str_ 方法

class Category(models.Model):
    name = models.CharField(max_length=100)
    def __str__(self):
        return self.name

再次查数据时,

In [11]: Category.objects.get(name='category test')
Out[11]: <Category: category test>

归档时,查看与日期相关:

Post.objects.dates('created_time', 'day', order='DESC')

In [7]: c = Category.objects.get(name='category test')

In [8]: c.name='category test new'

In [9]: c.save()   # 改完后,保存!

改后查看:

In [12]: Category.objects.all()
Out[12]: <QuerySet [<Category: category test new>]>

>>> p = Post.objects.get(title='title test')
>>> p
<Post: title test>
>>> p.delete()
(1, {'blog.Post_tags': 0, 'blog.Post': 1})
上一篇下一篇

猜你喜欢

热点阅读