操控数据库

作者: 一块大番薯 | 来源:发表于2018-03-24 18:18 被阅读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})
    

    相关文章

      网友评论

        本文标题:操控数据库

        本文链接:https://www.haomeiwen.com/subject/cddvlxtx.html