Django 最初被设计用于具有快速开发需求的新闻类站点,目的是要实现简单快捷的网站开发。下面简要介绍如何使用 Django 实现一个数据库驱动的 Web 应用。
设计模型
Django 无需数据库就可以使用,它提供了对象关系映射器(Object–relational mapping) 通过此技术,你可以使用 Python 代码来描述数据库结构。
可以使用强大的 数据-模型语句 来描述你的数据模型:
# mysite/news/models.py
from django.db import models
class Reporter(models.Model):
full_name = models.CharField(max_length=70)
def __str__(self):
return self.full_name
class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
def __str__(self):
return self.headline
应用数据模型
运行Django命令行实用程序以自动创建数据库表:
# linux/mac
$ python manage.py makemigrations
$ python manage.py migrate
# windows
...\> py manage.py makemigrations
...\> py manage.py migrate
makemigrations 命令查找所有可用的模型,为任意一个在数据库中不存在对应数据表的模型创建迁移脚本文件。migrate 命令则运行这些迁移来自动创建数据库表。
便捷的API
# 从“新闻”应用程序导入创建的模型
>>> from news.models import Article, Reporter
# 系统中还没有记者.
>>> Reporter.objects.all()
<QuerySet []>
# 增加一个新的记者
>>> r = Reporter(full_name='John Smith')
# 将对象保存到数据库