Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2268426
  • 博文数量: 293
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2170
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-31 14:30
个人简介

自己慢慢积累。

文章分类

全部博文(293)

分类: Python/Ruby

2019-09-28 23:25:18

1. model.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)
  5.     city = models.CharField(max_length=60)
  6.     state_province = models.CharField(max_length=30)
  7.     country = models.CharField(max_length=50)
  8.     website = models.URLField()
2.  settings.py 文件, 找到 INSTALLED_APPS 设置。 INSTALLED_APPS 告诉 Django 项目哪些 app 处于激活状态。添加APP名称 到INSTALLED_APPS 的末尾

3. 运行 python manage.py validate 。 它可以帮助你捕获一些常见的模型定义错

4. 查看SQL语句:python manage.py sqlall books
sqlall 命令并没有在数据库中真正创建数据表,只是把SQL语句段打印出来,这样你可以看到Django究竟会做些什么。

5. 创建表: python manage.py syncdb
    syncdb 命令是同步你的模型到数据库的一个简单方法。 它会根据 INSTALLED_APPS 里设置的app来检查数据库, 如果表不存在,它就会创建它。 需要注意的是, syncdb 并 不能 将模型的修改或删除同步到数据库;如果你修改或删除了一个模型,并想把它提交到数据库,syncdb并不会做出任何处理。

6. 数据查询 
(返回所有字段)
Publisher.objects.all()
Publisher.objects.filter(name='Apress')
Publisher.objects.filter(country="U.S.A.", state_province="CA", name__contains="press")
在 name 和 contains 之间有双下划线,contains 相当于SQL里面的LIKE

7. 数据排序
Publisher.objects.order_by("name")
Publisher.objects.order_by("state_province", "address")
逆向排序,在前面加一个减号 - 前缀
Publisher.objects.order_by("-name")

查询+排序
Publisher.objects.filter(country="U.S.A.").order_by("-name")

Django让你可以指定模型的缺省排序方式:class Meta

  1. class Publisher(models.Model):
  2.     name = models.CharField(max_length=30)
  3.     address = models.CharField(max_length=50)
  4.     city = models.CharField(max_length=60)
  5.     state_province = models.CharField(max_length=30)
  6.     country = models.CharField(max_length=50)
  7.     website = models.URLField()

  8.     def __unicode__(self):
  9.         return self.name

  10.     class Meta:
  11.         ordering = ['name']

8. limit
Publisher.objects.order_by('name')[0]
Publisher.objects.order_by('name')[0:2]

9. 插入和更新数据
插入
>>> p = Publisher(name='Apress',
...         address='2855 Telegraph Ave.',
...         city='Berkeley',
...         state_province='CA',
...         country='U.S.A.',
...         website='')
>>> p.save()
# 更新
>>> p.name = 'Apress Publishing'
>>> p.save()

#更高效更新
#更新一条
>>> Publisher.objects.filter(id=52).update(name='Apress Publishing')
#更新多条
>>> Publisher.objects.all().update(country='USA')

10.删除对象
# 删除单行
>>> p = Publisher.objects.get(name="O'Reilly")
>>> p.delete()

# 删除多行
>>> Publisher.objects.filter(country='USA').delete()

# 删除所有行
>>> Publisher.objects.all().delete()

阅读(716) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~