1. model.py里创建模型
例如:
-
from django.db import models
-
-
class Publisher(models.Model):
-
name = models.CharField(max_length=30)
-
address = models.CharField(max_length=50)
-
city = models.CharField(max_length=60)
-
state_province = models.CharField(max_length=30)
-
country = models.CharField(max_length=50)
-
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
-
class Publisher(models.Model):
-
name = models.CharField(max_length=30)
-
address = models.CharField(max_length=50)
-
city = models.CharField(max_length=60)
-
state_province = models.CharField(max_length=30)
-
country = models.CharField(max_length=50)
-
website = models.URLField()
-
-
def __unicode__(self):
-
return self.name
-
-
class Meta:
-
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) |