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>]
  • 相关阅读:
    object sender和EventArgs e含义
    将十进制小数转化为二进制小数的方法
    什么是类、对象、方法、属性、类的成员
    asp.net代码中尖括号和百分号的含义
    打开某个AVI文件,explorer.exe遇到问题需要关闭的解决方法
    中国娱乐学习门户负责人吴晓林讲解项目
    系统流程图与业务流程图
    如何去掉Zblog的版权信息(powered by)
    利用教育游戏丰富与深化综合实践活动课程教与学的理论与实践研究 课题
    浅析C# 中object sender与EventArgs e(转)
  • 原文地址:https://www.cnblogs.com/tmyyss/p/4368957.html
Copyright © 2011-2022 走看看