zoukankan      html  css  js  c++  java
  • Django学习之数据库API

    进入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>]
  • 相关阅读:
    SpringMVC核心技术
    mysql 忘记密码
    《面试专题》第一部分 JVM 内存优化
    《面试专题》第五部分 MySQL面试
    《面试专题》第四部分 并发编程进阶
    《面试专题》第三部分 java集合框架Map
    《面试专题》第二部分 java集合框架List
    《面试专题》第一部分 计算机编程基础
    SpringBoot 整合 JWT 实现分布式应用登录校验
    RabbitMQ 消息可靠性投递 + 消费
  • 原文地址:https://www.cnblogs.com/tmyyss/p/4368957.html
Copyright © 2011-2022 走看看