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>]
  • 相关阅读:
    解决SQL Server Compact 无法在64位系统下正常运行
    Mvc5+Entity Framework6 之二----在MVC中用Entity Framework实现基本的CRUD
    Asp.net MVC5中Html.DropDownList的使用
    C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母
    MVC学习 (二) Razor语法
    MVC学习 (一)
    编程实现机器人相遇
    jquery优化引发的思考
    (续)检测到有潜在危险的 Request.Form 值
    检测到有潜在危险的 Request.Form 值
  • 原文地址:https://www.cnblogs.com/tmyyss/p/4368957.html
Copyright © 2011-2022 走看看