1 数据库配置
建议新手直接使用默认的 SQLite 数据库。 千万别把你的数据库纳入版本控制!
官方的 django gitignore 会自动忽略 db.sqlite3 ,如果你重命名了数据库,就得自己添加忽略规则。
下面这条命令会为你创建几个常用的数据表,作为 mysite 的第一次升级。
python manage.py migrate
2 创建模型
# polls/models.py
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
3 激活模型
# mysite/settings.py
INSTALLED_APPS = [
'polls.apps.PollsConfig', # NEW!
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
python manage.py makemigrations
python manage.py migrate
第一条命令生成本次数据库升级的 SQL 语句,第二条命令是执行它们。
4 初试 API
本节最重要的内容是,为所有模型增了 __str__()
方法。 was_published_recently()
只是顺带的。
import datetime
from django.db import models
from django.utils import timezone
class Question(models.Model):
# ...
def __str__(self):
return self.question_text
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
# ...
def __str__(self):
return self.choice_text
5 介绍 Django 管理页面
因为生成后台是一项缺乏创造性的工作,所以 Django 直接包办。后台界面是为管理者准备的,而不是访问者,访问者的界面在 views.py 里。
5.1 创建一个管理员账号
python manage.py createsuperuser
按提示输入用户名、邮箱、密码等。
5.2 启动开发服务器
运行服务器默认启用后台,后台地址位于 http://127.0.0.1:8000/admin/ ,界面语言默认与 LANGUAGE_CODE 一致。
5.3 进入管理站点页面
只有用户和组。我们的投票应用呢?
5.4 向管理页面中加入投票应用
from django.contrib import admin
from .models import Question
admin.site.register(Question)
5.5 体验便捷的管理功能
轻松地添加、修改、删除。