欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django学习(2)

程序员文章站 2022-06-02 16:14:49
...

• 数据库设置

默认使用SQLite,相关的设置都在setting.py文件中进行。

setting,py中还有其他设置:
INSTALLED_APPS文件顶部的设置。该名称包含在此Django实例中**的所有Django应用程序的名称。其中包含一些默认的应用程序。不需要时可以在INSTALLED_APPS中删去。

python manage.py migrate

该migrate命令将查看该INSTALLED_APPS设置,并根据mysite/settings.py文件中的数据库设置以及应用程序随附的数据库迁移来创建任何必要的数据库表。

• 创建模型

模型是相关数据的唯一、确定的事实来源。它包含要存储数据的基本字段和行为。也就是一个包含各种属性(数据)和方法(行为)的类。
比如说:
在民意调查应用中,我们将创建两个模型:Question和Choice。Question有一个问题和出版日期。Choice有两个字段:选择的文本和投票提示。每个Choice都与关联Question。

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.db.models.Model的子类。每个模型都有许多类变量,每个类变量代表模型中的数据库字段。每一个字段都是一个Field的实例,不同的Field代表了不同类型的数据。

• **模型

为了包含应用,需要将应用的引用添加在设置的INSTALLED_APPS中,也就是将
polls.apps.PollsConfig添加到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',
]
python manage.py makemigrations polls

表示对模型进行了一些修改,称之为迁移(migration),会生成一个polls/migrations/0001_initial.py文件,可以进行人工编辑。

python manage.py sqlmigrate polls 0001

可以看到SQL中,进行了那些迁移操作。

注:
1、数据表的名称是将应用名称和模型名称的小写组合起来自动生成的;
2、Django将附加"_id"到外键字段名称。
3、该sqlmigrate命令**实际上并未在数据库上运行迁移-而是将其打印到屏幕上**,以便您可以查看SQL Django认为需要的内容。这对于检查Django将要执行的操作或是否有需要SQL脚本进行更改的数据库管理员很有用。

python manage.py check

检查项目中是否存在任何问题,而无需进行迁移或接触数据库

python manage.py migrate

获取所有尚未应用的迁移,并针对数据库来运行它们,实际上就是根据之前的修改来改变数据库。

模型更改的三步:
• 更改模型(在models.py中)。
• 运行为这些更改创建迁移 python manage.py makemigrations
• 运行以将那些更改应用到数据库 python manage.py migrate

Django Admin介绍
admin是作为网站管理员存在

• 创建管理员用户

python manage.py createsuperuser

之后按提示信息输入内容(在输入密码的时候,可能会有密码无回显的情况,只需正常输入,不会有其他影响,我的环境是Python3.8+Django3.0)

然后运行服务器,输入http://127.0.0.1:8000/admin/
会显示管理员登录界面:
Django学习(2)
注意这里输入的不是,这个网页出现的会是错误页面:
Django学习(2)
修改polls/admin.py之后,应用就可以出现在管理员页面上。

from django.contrib import admin
from .models import Question
admin.site.register(Question)

之后可以通过管理员界面对Question数据库进行修改。