• Django 入门学习总结3


    1、创建数据库

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

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

    python manage.py migrate

    输出信息为:

    生成和数据库有关的管理、授权、内容类型和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

    则创建相应的模型。

    运行命令:

    python manage.py sqlmigrate polls 0001

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

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

    4、与Django的交互

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

    通过输入以下命令,

    from polls.models import Choice, Question

    from django.utils import timezone

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

    q.save()

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

    修改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

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

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

    http://127.0.0.1:8000/admin/

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

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

    from django.contrib import admin
    from .models import Question

    admin.site.register(Question)

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

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

  • 相关阅读:
    web期末大作业:基于html+css+js制作 学校班级网页制作----校园运动会 4页
    查题搜题公众号题库接口
    海信电视U8KL使用体验:参数卷,画质技术也独有!
    C++入门【c++】
    Zemax操作36--一个选择初始结构的例子
    全网最全音视频媒体流
    antd Checkbox 如何套多层
    第7章 项目进阶,构建安全高效的企业服务(上)
    在Docker中使用MindSpore GPU版本
    antd vue 组件 使用下拉框的层级来显示后面的输入框
  • 原文地址:https://blog.csdn.net/computerclass/article/details/134508922