一、前言

在教程 01 中,我们完成了 Django 项目和 polls 应用的创建,以及基础视图的编写。教程 02 的核心是通过 Django ORM(对象关系映射)定义数据库模型、完成数据表创建,并使用 Django 自带的后台管理系统管理数据。本文会详细拆解教程 02 的每一步操作,同时补充「将代码提交到 GitCode 仓库」的完整流程,适配课程作业交付场景。

二、先执行数据库初始化(必做)

在你的 djangotutorial 目录(有 manage.py 的目录)CMD 里敲:

py manage.py migrate

作用:创建 Django 自带的用户、admin 等表。


三、编辑 polls/models.py(复制下面代码)

打开 polls/models.py全部替换成这段

from django.db import models
from django.utils import timezone
import datetime

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField("date published")

    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):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

四、把 polls 应用加入项目配置

打开 mysite/settings.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',
]


五、生成数据库迁移文件

CMD 里敲:

py manage.py makemigrations polls

出现:Migrations for 'polls': polls/migrations/0001_initial.py 就是成功。


六、把模型真正建进数据库

py manage.py migrate

出现 Applying polls.0001_initial... OK 成功。

1.查看迁移对应的 SQL(可选)

若想验证 Django 生成的 SQL 语句,执行以下命令(无需实际执行 SQL,仅用于查看):

    通过运行 makemigrations 命令,Django 会检测你对模型文件的修改(在这种情况下,你已经取得了新的),并且把修改的部分储存为一次 迁移

    迁移是 Django 对于模型定义(也就是你的数据库结构)的变化的储存形式 - 它们其实也只是一些你磁盘上的文件。如果你想的话,你可以阅读一下你模型的迁移数据,它被储存在 polls/migrations/0001_initial.py 里。别担心,你不需要每次都阅读迁移文件,但是它们被设计成人类可读的形式,这是为了便于你手动调整 Django 的修改方式。

    Django 有一个自动执行数据库迁移并同步管理你的数据库结构的命令 - 这个命令是 migrate,我们马上就会接触它 - 但是首先,让我们看看迁移命令会执行哪些 SQL 语句。sqlmigrate 命令接收一个迁移的名称,然后返回对应的 SQL:

python manage.py sqlmigrate polls 0001

你将会看到类似下面这样的输出:

2. 执行迁移,创建数据库表

这一步会将迁移文件的操作真正应用到数据库,创建对应的数据表:

py manage.py migrate

关键成功标识:输出中出现 Applying polls.0001_initial... OK,表示 polls 应用的表创建完成。


七、Django管理页面

1、创建超级管理员用户

python manage.py createsuperuser

按提示输入:

  • Usernameadmin

  • Email: 直接按回车跳过

  • Passwordadmin123 (输入时不显示)

  • Password (again)admin123

看到 Superuser created successfully. 就成功了。


八、向管理页面中加入投票应用

1. 打开 polls/admin.py

在VS Code左侧文件列表中:

  • 展开 polls 文件夹

  • 点击 admin.py

2. 修改文件内容

删除所有内容,粘贴:

from django.contrib import admin
from .models import Question

admin.site.register(Question)

按 Ctrl+S 保存


九、启动开发服务器

在VS Code终端中:

python manage.py runserver


十、在浏览器中测试

1. 访问管理后台

打开浏览器,访问:http://127.0.0.1:8000/admin/

  • 用户名:admin

  • 密码:admin123

  • 登录后应该能看到 Questions 链接

2. 体验便捷的管理功能并添加一些数据

  • 点击 Questions → 右上角 ADD QUESTION

  • 输入问题文本,如:"What's up?"

  • 设置发布日期(默认就是现在)

  • 点击 SAVE

页面的底部提供了几个选项:

保存(Save): 保存改变,然后返回对象列表。

保存并继续编辑(Save and continue editing):保存改变,然后重新载入当前对象的修改界面。

保存并新增(Save and add another):保存改变,然后添加一个新的空对象并载入修改界面。

删除(Delete):显示一个确认删除页面。

通过点击 “今天(Today)” 和 “现在(Now)” 按钮改变 “发布日期(Date Published)”。然后点击 “保存并继续编辑(Save and add another)”按钮。然后点击右上角的 “历史(History)”按钮。会看到一个列出了所有通过 Django 管理页面对当前对象进行的改变的页面,其中列出了时间戳和进行修改操作的用户名:

3. 访问投票页面

http://127.0.0.1:8000/polls/
应该还是显示之前的 "Hello, world..."(后面教程会改)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐