举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > django license Django4.0 激活模型

django license Django4.0 激活模型

2023-03-23 13:20 Django4中文教程

django license Django4.0 激活模型

django license

Django是一个开源的Web应用框架,它使用Python语言编写,遵循BSD许可协议。BSD许可协议是一种非常宽松的开源软件许可协议,允许任何人使用、复制、修改和分发Django的代码。

Django的BSD许可协议包含了三个条款:

1. 允许任何人使用、复制、修改和分发Django的代码。 
2. 在使用、复制、修改和分发Django时,必须在文件中包含原始版本的所有版权声明和免责声明。 
3. 在使用、复制、修改和分发Django时,必须在文件中包含原始版本的所有条款和条件。

这些条款意味着:如果你想要使用或者修改Django代码,你必须遵守BSD协议中的所有条款。这意味着你不能将Django代码作为闭源或者具有特定功能限制的开源代码进行再发布。此外,如果你想要将Django代码作为一个独立产品进行再发布(例如在GitHub上或者其他地方),你也必须遵守BSD协议中的所有条款。

此外,如果你想要将Django应用于商业盈利目的(例如开发一个SaaS应用或者出售一个应用平台上的应用),也不会对你造成影响。因为BSD协议不会限制您对已保略版权声明和免责声明文件中包含内容进行促销或者出售。

总之,BSD协议是一种非常宽松而强大的开源协议。它允许任何人使用、复制、保留版权声明并添加特性或者出

Django4.0 激活模型

Django 可以:

  • 为这个应用创建数据库 schema(生成 ​CREATE TABLE​ 语句)。
  • 创建可以与 ​Question和 ​Choice ​对象进行交互的 Python 数据库 API。

但是首先得把 ​polls ​应用安装到我们的项目里。

为了在我们的工程中包含这个应用,我们需要在配置类 ​INSTALLED_APPS ​中添加设置。因为 ​PollsConfig类写在文件 ​polls/apps.py​ 中,所以它的点式路径是 ​"polls.apps.PollsConfig"​。在文件 ​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",
]

现在你的 Django 项目会包含 ​polls应用。接着运行下面的命令:

...> py manage.py makemigrations polls

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

Migrations for "polls":
  polls/migrations/0001_initial.py
    - Create model Question
    - Create model Choice

通过运行 ​makemigrations命令,Django 会检测你对模型文件的修改(在这种情况下,你已经取得了新的),并且把修改的部分储存为一次 迁移。
迁移是 Django 对于模型定义(也就是你的数据库结构)的变化的储存形式 - 它们其实也只是一些你磁盘上的文件。如果你想的话,你可以阅读一下你模型的迁移数据,它被储存在 ​polls/migrations/0001_initial.py​ 里。别担心,你不需要每次都阅读迁移文件,但是它们被设计成人类可读的形式,这是为了便于你手动调整 Django 的修改方式。
Django 有一个自动执行数据库迁移并同步管理你的数据库结构的命令 - 这个命令是 ​migrate​,我们马上就会接触它 - 但是首先,让我们看看迁移命令会执行哪些 SQL 语句。​sqlmigrate ​命令接收一个迁移的名称,然后返回对应的 SQL:

...> py manage.py sqlmigrate polls 0001

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

BEGIN;
--
-- Create model Question
--
CREATE TABLE "polls_question" (
    "id" serial NOT NULL PRIMARY KEY,
    "question_text" varchar(200) NOT NULL,
    "pub_date" timestamp with time zone NOT NULL
);
--
-- Create model Choice
--
CREATE TABLE "polls_choice" (
    "id" serial NOT NULL PRIMARY KEY,
    "choice_text" varchar(200) NOT NULL,
    "votes" integer NOT NULL,
    "question_id" integer NOT NULL
);
ALTER TABLE "polls_choice"
  ADD CONSTRAINT "polls_choice_question_id_c5b4b260_fk_polls_question_id"
    FOREIGN KEY ("question_id")
    REFERENCES "polls_question" ("id")
    DEFERRABLE INITIALLY DEFERRED;
CREATE INDEX "polls_choice_question_id_c5b4b260" ON "polls_choice" ("question_id");

COMMIT;

请注意以下几点:

  • 输出的内容和你使用的数据库有关,上面的输出示例使用的是 PostgreSQL。
  • 数据库的表名是由应用名(​polls​)和模型名的小写形式( ​question ​和 ​choice​)连接而来。(如果需要,你可以自定义此行为。)
  • 主键(IDs)会被自动创建。(当然,你也可以自定义。)
  • 默认的,Django 会在外键字段名后追加字符串 ​"_id"​ 。(同样,这也可以自定义。)
  • 外键关系由 ​FOREIGN KEY​ 生成。你不用关心 ​DEFERRABLE部分,它只是告诉 PostgreSQL,请在事务全都执行完之后再创建外键关系。
  • 生成的 SQL 语句是为你所用的数据库定制的,所以那些和数据库有关的字段类型,比如 ​auto_increment(MySQL)、 ​serial ​(PostgreSQL)和 ​integer primary key autoincrement​ (SQLite),Django 会帮你自动处理。那些和引号相关的事情 - 例如,是使用单引号还是双引号 - 也一样会被自动处理。
  • 这个 ​sqlmigrate ​命令并没有真正在你的数据库中的执行迁移 - 相反,它只是把命令输出到屏幕上,让你看看 Django 认为需要执行哪些 SQL 语句。这在你想看看 Django 到底准备做什么,或者当你是数据库管理员,需要写脚本来批量处理数据库时会很有用。

现在,再次运行 ​migrate ​命令,在数据库里创建新定义的模型的数据表:

...> py manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Rendering model states... DONE
  Applying polls.0001_initial... OK

这个 ​migrate命令选中所有还没有执行过的迁移(Django 通过在数据库中创建一个特殊的表 ​django_migrations​ 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步到数据库结构上。

迁移是非常强大的功能,它能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表 - 它专注于使数据库平滑升级而不会丢失数据。我们会在后面的教程中更加深入的学习这部分内容,现在,你只需要记住,改变模型需要这三步:

编辑 ​models.py​ 文件,改变模型。

运行 ​python manage.py makemigrations​ 为模型的改变生成迁移文件。

运行 ​python manage.py migrate​ 来应用数据库迁移。

数据库迁移被分解成生成和应用两个命令是为了让你能够在代码控制系统上提交迁移数据并使其能在多个应用里使用;这不仅仅会让开发更加简单,也给别的开发者和生产环境中的使用带来方便。


阅读全文
以上是名动网为你收集整理的django license Django4.0 激活模型全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们