一旦创建 数据模型 后,Django 自动给予你一套数据库抽象 API,允许你创建,检索,更新和删除对象。本页介绍如何使用这些 API。
在本指南中(以及在参考资料中),我们将提及以下模型,它们构成了一个博客应用程序:
from datetime import date
from django.db import models
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
def __str__(self):
return self.name
class Author(models.Model):
name = models.CharField(max_length=200)
email = models.EmailField()
def __str__(self):
return self.name
class Entry(models.Model):
blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
headline = models.CharField(max_length=255)
body_text = models.TextField()
pub_date = models.DateField()
mod_date = models.DateField(default=date.today)
authors = models.ManyToManyField(Author)
number_of_comments = models.IntegerField(default=0)
number_of_pingbacks = models.IntegerField(default=0)
rating = models.IntegerField(default=5)
def __str__(self):
return self.headline
为了用 Python 对象展示数据表对象,Django 使用了一套直观的系统:一个模型类代表一张数据表,一个模型类的实例代表数据库表中的一行记录。
要创建一个对象,用关键字参数初始化它,然后调用 save()
将其存入数据库。
假设模型都位于文件 mysite/blog/models.py
中,这是一个例子:
>>> from blog.models import Blog
>>> b = Blog(name="Beatles Blog", tagline="All the latest Beatles news.")
>>> b.save()
这在幕后执行了 INSERT
SQL 语句。Django 在你显式调用 save()
才操作数据库。
save()
方法没有返回值。
有时候,你想统一设置 QuerySet 中的所有对象的某个字段。你可以通过 update() 达到目的。例如:# Update all the headli...
ASP.NET BulletedList DisplayMode 属性 BulletedList 控件定义和用法 DisplayMode 属性用于获取或设置所显示的列表的类型。 语...
ASP.NET Calendar DayStyle 属性 Calendar 控件定义和用法 DayStyle 属性用于设置或返回日历中日期的样式。 语法asp:Calendar ru...
ASP.NET Panel GroupingText 属性 Panel 控件定义和用法 GroupingText 属性用于设置或返回 Panel 控件中的控件组的标题文本。 该...
ASP.NET HtmlGeneric 控件 HTML 服务器控件定义和用法 HtmlGeneric 控件用于控制未被具体的 HTML 服务器控件规定的其他 HTML 元...