第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列

作者 : IT 大叔 本文共2598个字,预计阅读时间需要7分钟 发布时间: 2020-09-17

Django Web 初级起飞教程系列:

第1章:Django Web应用程序设置-Django 3…2…1…起飞!系列

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列

第3章:主页-Django 3 ... 2 ... 1 ... Takeoff!系列

第4章:列表页面-Django 3 ... 2 ... 1 ... Takeoff系列

第5章:新列表页-Django 3 ... 2 ... 1 ...起飞!系列

第6章:导航栏 - Django 3 ... 2 ... 1 ...起飞!系列

第7章:详细清单页面-Django 3 ... 2 ... 1 ... 起飞!系列

第8章:我的列表页面-Django 3 ... 2 ... 1 ... 起飞系列

第9章:编辑列表页面-Django 3 ... 2 ... 1 ... 起飞系列

Django MVC模式

Django是一个Web框架,也称为模型视图控制器(MVC)框架。Django遵循MVC,但是在这些概念上有一些细微的变化。以下是三个最重要的部分。

楷模

Django使用对象关系映射(ORM)。由于我们不必编写复杂的SQL即可在数据库中创建表和其他内容,因此这简化了与数据库的交互。模型包含要存储在数据库中的数据的字段和类型。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图

范本

模板提供了用户和网站之间的接口。Django中的模板是HTML模板。模板不必完全是静态的。您还可以添加JavaScript以使前端更加动态,甚至可以使用完全不同的前端(例如ReactJS)代替Django提供的模板。

观看次数

Django的视图将数据从数据库传递到模板,以便可以以更优雅和更有条理的方式向用户显示数据,而不仅仅是将它们显示为一堆表。

有两种类型的视图;基于函数的视图(在本书中使用)和基于类的视图。

网址

为了浏览网站,Django与其他网站一样使用URL。当用户想要转到页面并单击链接时,Django会从用户那里收到URL请求,并查看urls.py以查看所请求的URL绑定到哪个视图。Django调用正确的视图后,该视图将内容呈现到用户将看到的模板中。

Django管理网站

Django提供了一个管理面板,可让我们管理网站的内容。要访问管理面板,我们需要先创建管理员凭据。只有您信任的可以管理网站内容的人员才能访问管理网站。

让我们通过创建清单模型并通过使用管理面板创建和管理一些清单的过程来实践所有理论。我们不会使用模板,因为Django管理站点已经为我们提供了模板。

通过发出以下命令来创建管理员凭据。您可以使用下面的凭据,但在此过程中可以随意输入自己的凭据。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(2)

发出命令python manage.py runserver并转到http://127.0.0.1:8000/admin/以查看Django管理站点的登录页面。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(4)

输入您的凭据并登录。由于我们尚未创建任何模型,因此,管理站点到目前为止几乎为空,但是您应该看到两个字段,它们对应于Django提供的Authentication and Authorization部分。

Django为我们提供了一个身份验证系统,该系统可以管理用户帐户,组,权限等。稍后,我们将使用Django身份验证系统注册和创建用户。现在,让我们单击用户以查看我们从终端创建的超级用户。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(6)

您应该看到我们在创建超级用户时输入的用户名和电子邮件地址。一直到右侧,您将看到人员状态,其中显示绿色的对勾,这意味着该用户可以访问管理站点,因为它是人员的一部分。

名字和姓氏字段为空,但如果选择用户,则可以添加信息,将用户添加到特定组,编辑字段,甚至删除用户。在移至下一部分之前,请浏览管理面板。

列表模型

由于我们已经创建了清单应用程序并将其添加到settings.py中,因此我们可以继续在models.py中创建清单模型。

打开models.py并开始添加以下导入。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(8)

从django.db导入模型

通过导入,我们可以创建模型。我们创建的每个模型都将从django.db.models.Model继承,换句话说,每个模型都是此导入的子类。

现在从django.utils.timezone导入

导入将根据每个用户的各自时区获取当前时间。如果用户居住在不同的时区,则此导入将相应地进行调整。

从datetime导入datetime

通过提供诸如年,月,日,时,分,秒等的属性,使我们能够获取日期和时间。

列表模型将具有不同的属性,也称为字段,用户将可以输入或选择这些字段以创建列表。您可以根据项目要求将许多字段添加到列表模型中,因此不必将此处列出的所有字段都包括在内。随时根据需要编辑和添加自己的字段。

添加完这些导入后,我们可以添加以下代码来创建清单模型。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(10)

字符字段

用于小到大号的琴弦。

ImageField

此类具有FileField的相同属性和方法,但还会检查上传的文件是否为有效图像。FileField类也可以用于上传图像。

DateTimeField

此类用于显示日期和时间。

FloatField

用于浮点数。

文字选择

这是Choices类的子类,它使我们可以显示字符串选择。

空白

默认情况下,空白设置为False,这意味着该字段将显示为必填字段。这意味着需要填写该字段,否则将不提交表单。

当blank设置为True时,用户可以将该字段保留为空,并且表单仍将成功提交。

力量

此方法使我们可以将对象转换为字符串。此字符串表示形式将在管理面板中显示,其中包含我们返回的对象的字段(在本例中为title字段)。

如果不调用此方法,则在迁移更改后,管理面板将返回该对象,但是该对象不会在管理面板中显示明确的名称,因此难以识别。

在迁移到数据库之前,让我们在admin.py中注册模型,以使其显示在管理面板中。

转到应用程序文件夹中的admin.py并进行以下更改。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(12)

从django.contrib导入管理员

导入管理模块。

从.models导入model_name

将模型导入admin.py,以便我们可以使用它而不必再次编写。点号告诉Django在admin.py所在目录的models.py中搜索模型。

admin.site.register(型号名称)

在管理站点中注册模型。

在对models.py进行了相应更改之后,发出迁移命令并运行服务器。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(14)

运行服务器后,再次访问管理站点。您应该在“组和用户”下面看到“清单”的新选项。选择列表>添加列表。

创建自己的一些列表。完成后,清单页面应如下图所示。您可以通过单击查看和编辑特定列表。随时添加更多。

第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列插图(16)

免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » 第2章:Django基础-Django 3 ... 2 ... 1 ... 起飞系列

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论