Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3354
  • 博文数量: 4
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 40
  • 用 户 组: 普通用户
  • 注册时间: 2014-09-04 11:28
文章分类

全部博文(4)

文章存档

2014年(4)

我的朋友
最近访客

分类: Web开发

2014-09-07 14:03:22


数据库配置
    在 setting .py里找到数据库配置
    DATABASE_ENGINE = ' '            like this:django.db.backends.mysql
    DATABASE_NAME = ' '
    DATABASE_USER = ' '
    DATABASE_PASSWORD = ' '
    DATABASE_HOST = ' '
    DATABASE_PORT = ' '

   输入以下,如果没有打印错误则配置正确:
    >>> from django.db import connection
    >>> cursor = connection.cursor()

第一个应用程序,在创建的project下创建app
    python manage.py startapp books                  可以理解为:一个app是一个功能模块,project里是配置。
        books/
        __init__.py
        models.py
        tests.py
        views.py

创建第一个模型,每个模型相当于单个数据库表
    点击(此处)折叠或打开
  1. from django.db import models

  2. class Publisher(models.Model):
  3.     name = models.CharField(max_length=30)
  4.     address = models.CharField(max_length=50)
   
模型安装,setting .py里
   INSTALLED_APPS = (
          'mysite.books',
            )

开始创建数据库表:
    首先验证数据库表的正确性
    python manage.py validate

    其次,同步模型到数据库
    python manage.py syncdb        

基本数据访问
    点击(此处)折叠或打开
  1. >>> from books.models import Publisher
  2. >>> p1 = Publisher(name='Apress', address='2855 Telegraph Avenue',
  3. ... city='Berkeley', state_province='CA', country='U.S.A.',
  4. ... website='')
  5. >>> p1.save()
  6. >>> publisher_list
    [, ]

选择对象
    >>> Publisher.objects.all()
    [, ]        返回数据库中所有的记录,列表

数据过滤
    >>> Publisher.objects.filter(name='Apress')
    []

获取单个对象
    >>> Publisher.objects.get(name="Apress")
    

捕获并处理异常
    try:
        p = Publisher.objects.get(name='Apress')
    except Publisher.DoesNotExist:
        print "Apress isn't in the database yet."
    else:
        print "Apress is in the database."

数据排序
    按字母顺序
    >>> Publisher.objects.order_by("name")
    [, ]

    逆向排序
    >>> Publisher.objects.order_by("-name")
    [, ]

    Django让你可以指定模型的缺省排序方式:
    class Publisher(models.Model):
        name = models.CharField(max_length=30)
        address = models.CharField(max_length=50)

        def __unicode__(self):
            return self.name

        **class Meta:**
            **ordering = ['name']**
      
连锁查询
    >>> Publisher.objects.filter(country="U.S.A.").order_by("-name")
    [, ]

    限制返回的数据
    只显示第一个,可以使用标准的Python列表裁剪语句:
    >>> Publisher.objects.order_by('name')[0]
        
    >>> Publisher.objects.order_by('name')[0:2]                   
    注意,不支持Python的负索引,像这样:
    >>> Publisher.objects.order_by('-name')[0]

更新多个对象
    >>> Publisher.objects.filter(id=52).update(name='Apress Publishing')

删除对象
     一旦使用all()方法,所有数据将会被删除:
    >>> Publisher.objects.all().delete()

    如果只需要删除部分的数据,就不需要调用all()方法。
    >>> Publisher.objects.filter(country='USA').delete()

    

    





        










阅读(92) | 评论(0) | 转发(0) |
0

上一篇:Django学习(三)模板,让界面优雅一点

下一篇:没有了

给主人留下些什么吧!~~