Django 入门学习总结3

1、创建数据库

打开mysite/settings.py文件,可以看到我们使用Python中已包含的默认的数据库SQLite,也可以使用其他的数据库,如Oracle、Mysql等。里面也包含时区、语言等设置信息。

在使用数据库和表之前,输入下面的命令:

python manage.py migrate

输出信息为:

Django 入门学习总结3_第1张图片

生成和数据库有关的管理、授权、内容类型和session等内容。

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)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

上述类中的变量和数据库中表建立联系。可以通过上面创建数据库中的表和Django Web框架的模型对象。

3、激活模型

编辑mysite/settings.py文件,在INSTALLED_APPS 中,添加一条语句:"polls.apps.PollsConfig",如下所示:

INSTALLED_APPS = [
        "polls.apps.PollsConfig",
        "django.contrib.admin",
        "django.contrib.auth",
        "django.contrib.contenttypes",
        "django.contrib.sessions",
        "django.contrib.messages",
        "django.contrib.staticfiles",
    ]

现在Django框架知道包含有投票系统模块。完成以上步骤后,运行命令:

python manage.py makemigrations polls

则创建相应的模型。

Django 入门学习总结3_第2张图片

运行命令:

python manage.py sqlmigrate polls 0001

则生成表结构和索引等信息,如下图所示。

Django 入门学习总结3_第3张图片

运行python manage.py migrate,则在数据库中创建相应的模型和表。

Django 入门学习总结3_第4张图片

4、与Django的交互

通过python manage.py shell命令进入与Django的交互。

Django 入门学习总结3_第5张图片

通过输入以下命令,

from polls.models import Choice, Question

from django.utils import timezone

q = Question(question_text="What's new?", pub_date=timezone.now())

q.save()

则在数据库表中插入了一条记录,如下图所示:

Django 入门学习总结3_第6张图片

修改polls/models.py文件,以便在数据库表的查询中能返回更明确的信息。

class Question(models.Model):
        # ...
        def __str__(self):
            return self.question_text


    class Choice(models.Model):
        # ...
        def __str__(self):
            return self.choice_text

并增加另一个自定义的方法:

import datetime

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


    class Question(models.Model):
        # ...
        def was_published_recently(self):
            return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

注意上面又导入了和时区有关模块和工具类。

5、建立管理员账号

通过以下命令来创建一个管理站点。

python manage.py createsuperuser

在下图中,需要输入管理员用户名、密码、邮箱等信息。

Django 入门学习总结3_第7张图片

现在打开网页,输入地址,就可以打开管理员页面了。

http://127.0.0.1:8000/admin/

Django 入门学习总结3_第8张图片

输入用户名和密码,进入管理员页面。

Django 入门学习总结3_第9张图片

这时我们发现有用户名和组的信息,修改 polls/admin.py 将投票系统加入,以便管理投票系统。

from django.contrib import admin
from .models import Question

admin.site.register(Question)

刷新管理页面,则新出现投票相关的内容。

Django 入门学习总结3_第10张图片

点击最下的问题链接,我们就可以对投票系统,进行问题的添加、修改和删除等操作。

Django 入门学习总结3_第11张图片

你可能感兴趣的:(django,python)