1.数据库配置
打开 mysite/settings.py ,这是包含Django项目设置的模块。这个文件默认使用Django内置的SQLite数据库。但当真正开始一个项目时,会更倾向于使用更具扩展性的数据库。
默认的数据库设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
使用mysql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<数据库名称>',
'USER': '<数据库用户名>',
'PASSWORD': '<数据库密码>',
'HOST': '<数据库主机>',
'PORT': '<数据库端口>',
}
}
如果使用了SQLite以外的数据库,请确认在使用前已经创建了数据库
创建数据库后(以mysql为例,此时数据库为空),上述信息填写完整后,在manage.py所在目录命令行运行
python manage.py migrate
运行结束后查看数据库,此时数据库中自动创建了一些表。
mysite/settings.py文件头部自带 INSTALLED_APPS 设置项,自带一些默认的应用,
这些应用中有部分需要表才能使用,在执行上述python manage.py migrate命令时,会自动创建
部分需要的表。这些应用如果无需使用,可以删除。
编辑 mysite/settings.py 文件前,先设置 TIME_ZONE 为你自己时区
例如:TIME_ZONE = ‘Asia/Shanghai’
2.创建模型
投票应用中,两个模型,问题question和选项choice。question包括问题描述与发布时间,choice包括选项描述和当前得票数,每个选项属于一个问题。
编辑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)
# ForeignKey :每个Choice对象都关联到一个Question对象
choice_text = models.CharField(max_length=200)# 最大长度:200
votes = models.IntegerField(default=0) # 默认值:0
每个模型被表示为 django.db.models.Model 类的子类,所以需要继承models.Model
激活模型
为了使得项目包含这个应用,需要在 INSTALLED_APPS 中添加设置
INSTALLED_APPS = [
"polls.apps.PollsConfig", # PollsConfig 类写在文件 polls/apps.py
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
]
接着运行下面的命令
python manage.py makemigrations polls
运行 makemigrations 命令,Django 会检测你对模型文件的修改(在这种情况下,你已经取得了新的),并且把修改的部分储存为一次 迁移
迁移:是 Django 对于模型定义(也就是你的数据库结构)的变化的储存形式
改变模型需要这三步:
- 编辑 models.py 文件,改变模型。
- 运行 python manage.py makemigrations 为模型的改变生成迁移文件。
- 运行 python manage.py migrate 来应用数据库迁移。
介绍django的管理员界面
创建一个能登录管理页面的用户
python manage.py createsuperuser
然后按照要求输入用户名,邮件,以及密码
启动开发服务器
python manage.py runserver
进入地址,出现登录界面
http://127.0.0.1:8000/admin/
进入管理界面
输入刚才创建的账号,密码进入管理界面
向管理页面中加入投票应用
我们得告诉管理,问题 Question 对象需要一个后台接口。打开 polls/admin.py 文件,把它编辑成下面这样
from django.contrib import admin
from .models import Question
admin.site.register(Question)
现在我们向管理页面注册了问题 Question 类。Django 知道它应该被显示在索引页里
刷新页面,会出现Question类的索引
自行点击去探索
原网页地址:https://docs.djangoproject.com/zh-hans/4.2/intro/tutorial02/