设置数据库,创建您的第一个模型,得到一个简单介绍 Django的自动生成管理网站。


。 这是一个普通的Python模块 模块级变量代表Django设置。

默认情况下,配置使用SQLite。 如果你是新数据库,或 你只是在Django感兴趣,这是最简单的选择。 SQLite是 包括在Python中,所以你不需要安装其他的支持你 数据库。 在开始你的第一个真实的项目,然而,你可能想要使用一个 更健壮的数据库如PostgreSQL,避免database-switching头痛 埋下了伏笔。

项目以匹配您的数据库连接 设置:

  • ,将存储文件 在你的项目目录中。

除了SQLite数据库

” 在你的数据库的交互式提示符。

这将需要在后面的 教程。

如果你使用SQLite,您不需要创建任何事先的 数据库文件时将自动创建。

来 你的时区。

设置文件的顶部。 那 拥有所有Django的名字在这个Django应用程序被激活 实例。 应用程序可用于多个项目,你可以包和 分发他们使用的其他项目。

包含以下应用程序,所有这一切 有Django:

  • ——管理网站。 你很快就会使用它。
  • ——一个身份验证系统。
  • ——一个内容类型的框架。
  • ——一个会话框架。
  • ——一个消息传递框架。
  • ——一个框架来管理 静态文件。

这些应用程序都包含在默认情况下作为一个方便常见的情况。

其中的一些应用程序利用至少一个数据库表,不过, 所以我们需要在数据库中创建表之前,我们可以使用它们。 要做 ,运行以下命令:

$ python manage.py migrate

(Oracle)来显示 Django创建所需的表。

极简主义者的


现在我们将定义您的模型——从本质上说,您的数据库布局, 额外的元数据。

哲学

。 我们的目标是在一个定义数据模型 并自动获得的东西。

这包括在Ruby On Rails迁移——不像,例如,迁移 完全是源自您的模型文件,基本上只是一个吗 历史Django可以通过更新您的数据库模式 你当前的模型相匹配。

文件,以便它看起来像这样:

民意调查/ 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什么 每个字段的数据类型。

在machine-friendly)字段的名称, 格式。 您将使用这个值在Python代码中,和你的数据库将使用 这是列名。

。 在这个模型中,所有其他字段字段的机器可读名称 满足人类可读名称。

。 不仅在使用 数据库模式,但在验证,我们很快就会看到。

为0。

。 Django支持所有常见的数据库 关系:多对一,多对多,一对一。


小的模型代码给Django很多信息。 ,Django 能:

  • 这个程序的语句)。
  • 对象。

应用程序安装。

哲学

Django应用程序的“可插入”:你可以使用一个应用程序在多个项目, 您可以分发应用程序,因为他们没有与一个给定的 Django安装。

。 它会看起来像这样:

mysite / settings.py
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

您应该看到类似于下面的:

Migrations for 'polls':
  0001_initial.py:
    - Create model Choice
    - Create model Question
    - Add field question to choice

。 别担心,你不会阅读 他们每次Django使人,但它们设计成人类可读 如果你想手动调整Django如何改变的事情。

命令以迁移名称并返回SQL:

$ python manage.py sqlmigrate polls 0001

您应该看到类似于下面的(我们重新格式化它 可读性):

BEGIN;
--
-- Create model Choice
--
CREATE TABLE "polls_choice" (
    "id" serial NOT NULL PRIMARY KEY,
    "choice_text" varchar(200) NOT NULL,
    "votes" integer NOT NULL
);
--
-- Create model Question
--
CREATE TABLE "polls_question" (
    "id" serial NOT NULL PRIMARY KEY,
    "question_text" varchar(200) NOT NULL

相关文章:

  • 2021-12-04
  • 2021-11-01
  • 2021-08-08
  • 2021-08-08
  • 2021-08-08
  • 2021-05-11
  • 2021-10-08
猜你喜欢
  • 2022-12-23
  • 2021-12-03
  • 2021-12-01
  • 2022-03-03
  • 2021-11-08
  • 2021-12-17
  • 2022-12-23
相关资源
相似解决方案