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})