Django 的使用方法2(模型创建(数据库设置)~ Django 管理网站(管理员)的设置)
这是Django使用指南的续集。Django 2.1.2
之前所做的
安装Django,并启动开发服务器。
创建应用程序,创建简单的视图并对URL进行匹配。
数据库的配置 (Database configuration)
在创建模型之前,首先进行数据库的设置。
在setting.py中进行配置
打开 mysite/setting.py 文件(setting.py 是 Django 的配置文件)。
默认情况下,它使用 SQLite。可以更改为其他数据库,但在这里不详细说明。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
创建数据库的表
在终端中输入”python manage.py migrate”。
根据setting.py中INSTALLED_APPS的配置,根据数据库设置创建了Database的表格。例如db.sqlite3等,目录结构增加了。

创建模型
在数据库中存储的对象(属性和行为)。模型的设置在创建的应用程序名称的目录中的models.py文件中进行。这次我们会在polls/model.py中进行设置。
增加课程
如果要创建两个模型,一个是question模型,一个是choice模型,可以在polls/model.py中添加两个类。
例如,要在polls/model.py中创建question模型和choice模型,可以添加两个类。
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)
添加路径
创建模型后,将其添加到项目中。
为了将在 polls/app.py 中设置的 PollsConfig 添加到项目中,需要在 mysite/setting.py 的 INSTALLED_APPS 中添加路径。
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
只需要一个选项.
仅需一个选项: polls是没有问题的。
追加的 polls.apps.PollsConfig 是在 polls 目录下的 app.py 文件中的 PollsConfig。
启用模型
激活所设定的模型和数据库。
创建已更改模型的迁移文件。
使用Python的管理命令生成投票应用的迁移文件。
将更改应用于数据库
运行以下命令完成数据库迁移:python manage.py migrate
Django 管理界面
创建管理用户
创建超级用户
在终端中输入$ python manage.py createsuperuser。
输入用户名、电子邮件地址和密码,然后选择喜欢的内容进行输入。
用户:admin
电子邮件:admin@admin.com
密码:admin
这样就可以了。但是会被警告密码太短(建议至少8个字符),但是可以继续设置。
对管理网站的访问
如果开发服务器没有启动,就重新启动。
# 開発サーバーの起動
$ python manage.py runserver
请访问 http://127.0.0.1:8000/admin/ 并登录。

输入之前设定的超级用户的用户名和密码,然后进入管理界面。
将调查应用程序在管理员上可编辑
为了使得Polls应用程序的编辑功能能够在管理界面中进行,需要编辑polls/admin.py文件。
# polls/admin.py
from django.contrib import admin
# Questionのインポート
from .models import Question
# これで管理画面でQuestionの編集ができるようになる
admin.site.register(Question)
