哎，欢迎到 试 系列的Django [音乐] 我的目标是帮助你
像 我想要你 一样学习和掌握django 尽你所能去
并了解django网站 你看到我们将要看到的框架
在这一个中做到这一点真的是从一开始 一开始我们就要开始了
绝对的基础，然后我们会 努力引进新概念
一路走来， 我实际上 不会去 相反 ，要建立一个完整的项目
我要做的就是跳 进去 个人概念把它们变成了一个
某种项目中的实际用例 然后最终你会有一个非常好的
如何建立真正的 好 理解 使用django和的web应用程序
当然我建议你学习 从整个项目，我有一堆
他们两个 就 在这里 在YouTube上 的 加入CF EECOM削减的YouTube 以及
在我们的网站上加入CF e-comm我们有一个 从那里建造真实的东西
django的东西， 但这个系列是 一切都是为了获得 绝对的基础知识 甚至高级水平的东西一点一滴
如果你是第一个学习Django的话 时间令人难以置信的激动人心
经验至少这对我来说 因为有一次我真的能够
构建一个Web 应用程序，你知道一个 数据库附在它上面就像哦
这太酷了，我想 你 可能 也同样兴奋
你已经用其他网络 做过 了 应用程序或许这是
第一次 你编程任何一种方式 最令人沮丧的部分是在
开始不是 因为 这个 编程 语言但通常是因为
如何实际设置您的 系统 而且因为它 多年来一直 令人沮丧
我们会找到建立你的方式 系统取决于你所在的和
这是挫败感的一部分 你会看到我在工作中经常工作
Mac Mac OS环境，如果你是 在Windows上，你就像嘿，为什么不是 它
我的意思是实际使用Python 一样 实际上使用Django 是一样的
两个系统因为python是Python 和Django是Django 得到 的 命令
可能略有不同但是 实际上现在也是如此
多年来我们完善了装置 过程和所有的 上 可以 找到
从零开始加入CFE comm斜杠，如果你 只做那个设置的第一步
过程你将为 其余部分 做好准备 该系列 你不必去 上
比建立其它的任何其它步骤 你跳到那里 之前 你 的系统 我做了
想要提及另外 一 件事 是代码，所以我们有 我们 所有 的 代码 在github上或加入CFE comm slash github
快捷方式，你会找到它 尝试Django存储库，以便加入 C feed
comm slash github 我们会带你到这儿 然后，如果你进入存储库
你会看到各种各样的 事实 如果你输入试试Django，你会看到
那里有多个， 我想要你 忽略 所有 有 数字的人
在他们中，只是去 试一试 Django对， 所以这是一个正确的链接
在这里，如果你想直接去 那里 但是这段代码会100％帮助你，因为
当你点击 roblox时你会发现什么 想做的就是拿你自己的代码
一直在写，看看github 确保你写的是什么
和我们一直在做的一样 部分是关键的视频
然后最后一件事就是有疑问的时候 查阅文档 Django的文档 非常好
写得很好， 而且还有很多 那里 你可以知道我们不会
必须掩盖，因为他们给 额外的背景或他们给
具体到你拥有的任何使用情况 对于技术，然后是最后一个
事情是 谷歌是 你知道 的 朋友 您可以使用Google进行搜索
你不熟悉的东西 并且通常 会 带来Stack
溢出的dot-com Stack Overflow就是全部 这些问题来自 人们对所有人的看法 各种编程语言， 包括
Python包括Django在内 JavaScript 里有各种各样的东西
你可以 快速搜索 一下 搜索只是 Django和可以学习
刚刚 从去很多刚刚从 和投票一样， 我的意思是Django规模
这是 一个有趣的问题 采取 看看然后什么是null是什么
空白 我的意思是，这是一个伟大的
学习资源以及我是什么 将为下一个视频和 所有 视频做好 准备
其他未来的视频就是你拥有的 您的系统已设置并准备工作
用Django和Python 的版本 我们将要使用将是
在下一个讨论， 因为他们 会在结束时随着时间的推移而改变 那天我真的希望你 坚持下去
视频中的 任何 版本都是因为 作为一个至关重要的初学者
没事所以就 这一个 ， 我们 要 创造一个全新的虚拟 环境和 安装jingo ，如果 你
以前没做过 这些 事 不管版本绝对
现在停止， 并确保你回去 现在我绝对做设置过程
希望你有一个新的虚拟 环境和新鲜的 Django安装
不仅仅是为了实践 它 还要确保我们都是
从完全相同的 位置开始， 如果 你打开你的 终端窗口或如果
你在Windows上的电源外壳或 命令提示符， 但希望你是
在Windows Linux上 使用 PowerShell的 恐惧 和Mac用户 区终端 很好
所以如果我们输入python v和python 3 - 这 就是我 现在所能 得到的
已经有Python 3在那里如果你 看Python 3点六点五或
三点六点 六就在这里 如果你看到这个，你的状态很好
然后你将不得不做一个额外的 一步没关系
记住这一点，我要离开 打开，我 只是要去把它 过
一点点打破它 下来， 我们 只要记住 这一点
虽然我们这样做好， 所以我有 另一个终端窗口现在打开你
绝对不必这样做，但我是 要 离开那里 以防万一 如此
关于我们如何，有几种不同的 方式 可以创建虚拟环境 ，
安装Django我会告诉你的 我会这样做的，所以我会
告诉你最后的方式，如果那部分 为你工作很棒，你可以去
下一部分将安装 Django， 也许我们应该做所有
一开始 所以我要告诉你 我现在的确 是 如何做到的
所有人都希望保持这种虚拟 一个开发区的环境如此 对我来说，当我打开 它并列出时
这一切都是我看到你的 可能是有点不同
你可能会看到你的相同 这个开发文件夹， 如果你没有看到它 在我的情况下， 确实让他们的开发 正确
已经有它， 所以我明白了 错误我要把CD 放进爸爸那里
文件夹好吧 这就是我保留所有内容的地方 我的开发项目所以我在这里 要继续创建一个目录
叫做Django，我们就是CD 目录然后我们要 创建
我们的 虚拟环境现在在 它创建 之前 我就是
只是打几乎NV 和制造 我确实没有看到 任何错误
如果 ，我可以做各种各样的选择 我输入ABC有一个错误， 所以如果
你看， 这 意味着 你需要一个错误 安装所有 虚拟环境
再次 好的，所以我清除了 一切，但如果
我做PWD我确切地知道我在哪里 如果我列出 ，在该文件夹内 所有的东西没有什么 在那里
现在，我要做的就是虚拟和B - P Python 3现在再次进入记住
我怎么说如果你有 Python-V 和 Python 3在这里你可以省略这个
一部分在这里 权 所以，如果你看到python 3.6就在那里
可以省略那部分，然后离开 它 实际上是 我们进入的 时期
这会创建一个虚拟环境 在这个目录里面，所以 我可以
使用源bin 斜杠 激活它 激活，然后安装django所以pip
安装了django和我的版本 django将是两点零
点7所以django等于2 点零点 七也应该
如果你是你的Jenko版本 我这句话的使用坚持认为
叮当的版本老实说我 不在乎 如果两点八是两点零
第八点是出局使用两点零 第七点将在 以后升级
如果你坚持 我这个 你 绝对会升级我们
我保证绝对 保证 好，所以我 会打进去，我会放过
现在为 Windows上的那些人 运行 你的 激活你可能还记得它
不同它只是略有不同 所有安装我只会去
提前把它分解一下我 要打开 另一个终端窗口
并模拟重新激活此虚拟 环境所以 我要列出一切
将CD 放入 开发中然后我看到了 尝试Django我回到了 虚拟世界 环境所以我可以做源Bane
斜杠在Mac环境中激活 Windows环境当然是脚本 我们激活你也可以运行的任何东西
停用好，所以停用只是结束 虚拟环境很酷，那是什么
拥有 虚拟的目的 环境，如果你这样做
我 已经清楚 地 知道 它的那样简单 做 点薯条 你看到所有这些东西
我看到Django一点十分四点如果 我激活它斜线 弯曲激活和
我看到的所有点都是Django 2.0 点7和 PYT Z所以保持这些 要求分开，何时到来
到Python 及其 像Django这样 的项目 你想要绝对确保
这样做没问题， 所以我们拥有一切 如果这 部分已经完成 安装 你准备好了，你可以 继续前进
下一个 如果你有一些问题或者 你想要
看到启动虚拟的 其他方式 环境坚持 我这么注意到
显然我们有这些东西 安装了所有这样的工作
前才刚刚看 只是 插图目的你知道我是
如果你这么做，假设到了这一点 让它工作 然后你就 完成了
没有它 工作看下这个 部分 倒回然后安装你的东西
需要安装，因为我要去 很快，但仍然解释是什么
事情 好了，所以我 打算 收出 我所有的终端窗口都表现得像
我从零开始， 所以我跳进来 到我的终端窗口， 我进入 了我
要继续做一个新的开发 名为dev的文件夹 - 我要把CD放入
开发-并列出所有的东西 什么的 在那里我 只是 我 要告诉你
三种不同的创造方式 第一个是虚拟环境
只是输入虚拟和B然后 你要给它的名字就是Vee
和V这是 现在这样 做的方法 无论它是Python版本
要离开系统的任何东西 默认版本是这样我输入 的
我的情况是 2.7版，但那是一个 现在 开始 虚拟环境的方法
如果我想基于 a 开始它 我会做的特定版本的 Python
虚拟环境V和V - P Python 3 哦 让我们称之为V E和B - 这就是
我是Python和Python 3的一个版本 所以如果我打字就假设
Python 3它实际上给了我一个Python 3 但是如果你输入Python 3那就好了
什么 都行不通 好吧，我可以做到 这一点
Python 3 或者换句话说就是找到了 安装Python 3的位置
对，如果，Python 3将无法正常工作 Python 3无法正常工作
偶尔安装Python 你的系统 刚刚安装完毕
别的地方和这个命令本身 不起作用，但 无论在哪里
实际安装在任何系统和你 你 实际上做了 这样的 事
在路径粘贴到 并按下回车键 这实际上应该打开Python 3
对你那么那么这意味着， 实际启动虚拟的最终方式 环境是虚拟环境和B 3
破解P然后是Python的路径 3 我点击进入然后 实际上
启动那个虚拟环境 现在我要提到的另一件事是我们 可以只创建我们想要的目录
这么 称呼 它，我想做一个 虚拟环境和全新的
目录这是 我继续前进并 击中 输入
我把CD放进去，然后我可以虚拟地做 env然后是句号而不是 名字
然后是我的任何版本的Python 可能需要的 这些权利，使订单
事情并不重要 我怎么样 与之相比，运行这些命令 我以前做过什么 ，但那 是一些
关于如何创建的不同方法 虚拟环境现在在我的情况下我是
实际上要继续前进并摆脱 那个dev 2文件夹我真的不需要它
但这完全是为了说明 获得所有这些东西的目的 好的， 所以我会把CD带回我的
原始项目，并继续前进 离开它，现在如果任何 这
令人困惑，你迷失了 重看 视频并多次执行此操作， 因为
对开始有基本的了解 安装 它的新项目 你将要去
如果你这样做，可能会经常这样做 只有在这里学习一些基础知识
Django， 你不打算 做得很好 许多项目与Django 你
也许 现在 不需要这样做 还有一点我会说 也许
你喜欢嘿 我不关心 虚拟环境 我不在乎
做所有这些事情 这样做你自担风险
你会遇到 问题 ，如果你 不要使用虚拟环境 ，是的
我没有使用 Conda anaconda是一个 对于类似的数据更多的包
科学相关的东西Jango可以用一个 在我的很多相同的包
体验蟒蛇和Jango不起作用 如果你真的那么好但很 现实
使用anaconda 你可能已经 熟悉那个系统，你就是 可能不会使用虚拟
环境 但是我会为这整个而存钱
系列我 建议 他们 使用 虚拟环境只是 习惯了
它只是 习惯 了网络 开发人员经常使用 开发
Jango的 环境
现在是时候创建一个Django项目了 看到我 有一个全新的清洁终端
窗口打开，因为我想进入 知道如何重新激活a的习惯 虚拟环境让我进来
我将CD放入我的dev文件夹中 把我所有的CD都拿到我的手中 Django文件夹我的虚拟所在
环境根源，我运行良好 不，我不会虚拟和通过
命令了 我们继续并运行源bin斜杠
激活正确的Linux和Mac 用户为 Windows用户而已
脚本斜杠激活 好，所以如果 你 在这里 你可以继续 做点子
冻结，你可能会看到这个 这是版本的Django版本
我们正在使用的是我的版本 建议您使用，所以我
就这样就把它打开了 在这里，我们 总能看到它是 正确的
只是一个很好的小提醒 嘿，那是 Django的版本我将要使用
好吧现在让我们继续这样做吧 一遍又一遍，这真的很容易 这有希望这是真的
如果真的不容易，那真的很容易 我要 快，也许只是把它放在一个
速度慢我知道 我 说得很快 但我试着这样做，所以初学者 可以
跟上， 但也是如此先进的用户 更高级的Web 开发人员都
只是学习Django 所以 你们 所有人都 可以 从中得到一些 真正的东西
它的目标是它的一点点 雄心勃勃地实现， 但无论如何还好
现在我们正处在这个虚拟环境中 我有这个命令 Django - admin 所以Django - admin是一个命令
让我们做各种各样的事情 Django，但主要是创建我们的
Django项目如此Django - 和男人 创造项目 和我们的
项目名称 现在就是你 可以 在 蝙蝠 里面 做到 这一点
虚拟环境，但我 的 喜欢做的是建立一个src 文件夹 中
项目的源文件夹和 然后我去那里好了 ，所以如果我去
回到 我的虚拟环境，我明白了 我们在这里有这些东西
对，所以我 得到了for for for 与虚拟相关的事情 环境和
我有我的SRC文件夹，所以我改为 该src文件夹并只是 做 Django的-和
男人开始项目，然后我的项目 说出我要称之为什么
原来我会叫它试试Django 那是我 虚拟 的名字
环境我也意识到了 没关系，你可以命名你的虚拟
环境和你的Django项目 同样因为虚拟环境是 仅适用于您的系统项目
你自己就是其他地方 就像你将在github上，但不会
与 我们的 虚拟 相关的任何东西 环境所以我要开始这个
项目尝试Django ，我只是把一个 期末， 因为我在 那
SRC文件夹我点击进入，它将 列出 事情我看到设法 馅饼 和我的
试试Django 配置文件夹 你知道 的 名字 试试Django因为
这就是Django的名字 配置，如果我运行Python 设法让 我开始或原谅我跑
服务器我应该看到的是它的说法 这样的事情
是的它给了我一些警告我们 不必担心， 但是 它 给 了我一个网址 ， 我可以
如果我打开 我的网络 浏览器，那就去吧 去 那里嘿恭喜你
如果你不是，Django现在正在工作 熟悉 Django 2.0，这是新的
对你来说这是一个新的登陆页面 他们创造了它看起来更干净我 喜欢它比旧的 好多 了
当然 所以我们现在让Django工作就绪了
去 所以有各种各样的 事情 我们可以用它 但 在 此 之前 我 做
实际上跳Django本身就是我 想要做的就是开始与一些人合作
我可以在某个地方使用某种文本编辑器 编写不一定的代码
里面 的终端 ，因为得到 对于 特别是 超级繁琐
初学者变得非常乏味 在终端内写代码
我们要做些不同的事情 和下一个我们要谈论
所以和我们在一起吧
在这一个我们要下载一个 代码文本编辑器所以编写我们的 代码是
只是 比 用户友好 将所有命令输入到
终端或PowerShell，所以我们 会使用崇高的文本，但另一
一个叫另一个受欢迎的人 PyCharm或py魅力我是如此崇高的文字
是100％免费下载和使用， 如果你 真的很喜欢你可以 继续前进
买它我不隶属于任何一个 这些我只知道，他们都是
写出 你的非常受欢迎的选择 代码， 如果这就是你 真的
在这里做， 你只是写出来 你在他们拥有的这些东西中的代码
一些功能， 使他们 更多 用户友好，但我 真的不会 去成 ， 现在所有我会说
只是继续 下载这个和 启动并 运行 ，一旦你这样做 打开它 ，你会看到一些东西
这样的 权利，使你可以有你 打开窗口使你的侧边栏打开 你会看到一些空白页面就像
这就是我们真正需要做的就是添加 我们的项目 就是为了做到这一点
只需进入项目 添加文件夹即可 项目，然后我们想导航 到
无论我的项目现在在哪里，我都是 转到我的用户的硬盘用户 dev文件夹， 因为那是在哪里的
终端默认打开 是正确的 在这里然后尝试Django 我要去
继续操作， 点击 打开这带来的所有 它带来了各种各样的东西
在虚拟环境相关的东西 和 它还带来了我的SRC文件夹 有我管理两个pi和各种各样的
Django关联的事情是这样的 是 使用a的优势之一
文本编辑器 就是真的 干净，容易看到发生了什么
任何给定的代码，它也给出了 你这些数字或这些 代码行
对，所以我可以说嘿看 第十行 你已经可以去繁荣了
第十行还好， 所以这是 另一个 我 使用 代码编辑器的 方面
意味着有这么多东西它 ， 我 只是不 打算进入 ，因为我
我可以花大概一个小时 刚刚过去的设置 过程
崇高的文字也许并不长 ，但 无论如何，我们现在有这个文件夹
这里 我们已经准备好使用它了
项目，但 我想做的只是 将项目保存在sublime文本中
在这里，只需将其保存 为尝试Django 这个工作区的东西是额外的 关于我们的测试，所以不要担心
关于 我 把它 保存 在这里我已经得到了我的 崇高的项目，当然，如果你
关闭崇高的文字，你在 你的项目本身就是你的
这样的事情 就像 你嘿我 导航回到 原来的位置
你知道 你可以 双击 这一点，希望它会打开崇高
如果没有，那么只知道你做了 你需要做的事情就是得到 信息，只是说 确保你
打开你知道的崇高文字 如果你在Windows上就可以 了 右键单击，你知道 做 同样的 事情
你 想要 的东西 确保它打开但很好
事情是它只是削减到正确 我的所有代码都在哪里，我可以 打开
我需要的 所有不同文件 并对它们进行编辑和更改
崇高的文字是真的很酷 很喜欢 我希望他们能 赞助这些
他们没有的视频，但我真的很喜欢 他们的产品所以去看 看吧
下载 它因为我们将要使用 很多它不是必需的，但确实如此
强烈 推荐在下一个见 一
让我们谈谈设置嗨 绝对是 你将要结束 的基本事情
它使用了很多它有很多 对 你的项目的 影响
所以我们还是要排序 的行由行 当然，你在这里发生了什么
因为那里可以阅读更多关于 文档的内容 更是要在 后面的 场景不仅仅是我们要提到的
首先，我们当然是导入 操作系统，因为Jango适用于任何给定的
操作系统Windows Mac和Linux 你们所有人都看到完全 一样的东西 如果你已经完成了我们对此所做的事情
点， 所以你看我们导入操作系统然后 我们有这个变量 名称base dur
那就是这个长串的东西 所有这一切都是如此 为我们提供了 管理 的 路径
高是但更具体地说是文件夹 这是持有高管在...
我们的案例是SRC所以它就是那个文件夹 就在那里，好吧我怎么知道这是
我很了解Python我知道Django 好吧，但你怎么能弄清楚 在哪里
那个目录就在这里 所以baster只是在我的情况下给你 这样你的用户可能会有所不同
如果你在Windows上它会是 确定斜线会有所不同
在不同的方向，所以 很好 这里的事情是我们知道 Django知道
它是 在 系统就是这样的 重要的权利所以我们 可以做的事情 相对于整个 Django而言
项目很酷 ，这 巴斯特告诉我们，正确关闭
开始，你知道你可以打印 如果你是的话，那也是最重要的
如此倾向于你可以 打印出来 只需 运行服务器再次让我们继续
并再次运行该服务器，做什么 你知道它实际打印出来
我们的目录没事就跟我 说这就是它的 意思
很酷的 下一件事就是 密钥 每个Django项目都有一个 密钥
他们 总是 与之相关联 该项目独有或至少是他们 应该 是 该项目和 您的 独特之处
不要让你知道 公众 在生产中，因为它可以
可能导致安全泄漏 和你 不要那么 只做 一对
变化 是好的，接下来 就是调试 这是非常有用的东西
当你在学习或在你学习的时候 当你带来它时， 开发两件事
进入实时服务器进行现场制作 环境它是一个真正的网站
真实的人真正的陌生人 使用它 你 会把 它变成假的 ，那就是
一些影响 后来允许主机 像 我不 喜欢的域名一样
要进入的是 现在 安装的应用程序这是一个基石
Django安装 放大器有一堆 它们默认安装，我们将去
以后但这就是你的地方 像你知道的那样构建你的应用程序
你有一个博客， 你正在创建你 如果你把它放在已安装的应用程序中
有产品列表的产品 你有没有安装应用程序 这对Django来说意味着非常核心
从更多的角度考虑应用程序 组件， 然后应用程序就像应用程序 像你一样 有了新的 含义
手机有很多应用程序 不喜欢它更像是一 点点
更大的Django项目件 本身就是中间件这是我的意思
这里 发生了很多事情， 但它有 处理您的请求以及如何处理
处理请求以及如何处理 处理安全性和类似的东西
这是后话以后我们会去了 它 肯定更像是一种先进的
主题， 但它很好，因为它允许我们 要 知道有很多 安全措施
我们可以看到内置的 功能 一些 已经存在的
root URL Kampf这是我们要做的事情 肯定是肯定的 - 这是怎么回事
Django知道如何路由任何给定的URL 你知道我喜欢我的服务器 现在就跑，所以如果我看看
运行服务器， 如果我去斜线 你什么都知道 这是像这样的URL
默认情况下自动路由 Django的东西是一个非常酷
接下来 就有内置功能 是你知道像Django的模板
呈现HTML模板 我们要经常讨论这个问题但是
基本上我们在哪里存储它们 他们如何呈现他们是如何做到的
我们将在以后 完成所有这些工作 但它本质 上是 HTML 页面
在Django中呈现 它真的很酷 它非常有用 ， 绝对是一个
我们将 在下一个讨论的共同话题 事情是这 是 wsgi应用程序
你的服务器如何工作， 所以服务器去 通过并使用此设置
在某些情况下你可以改变它 其他情况下， 你 只是 保留原样
接下来的东西数据库是Django 映射到的 数据库 真的很好
所以MySQL PostgreSQL 和其他几个一样 你很容易很好地映射到它
在这里 改变你的 后端 定位和一些其他设置
你 可以 继续阅读 所有 的 文档 这一点， 但默认情况下 它拥有酷睿i3续集
数据库已经存在 ，你可能会看到 那里是很酷 未来
事情是我们有密码验证器 这只是验证密码是
对当前的好或至少是好的 我们发现Django的标准
我有一些国际化的东西 要 时不时 地跳过 了 最后静态文件就像你在哪里
将您的图像存储为JavaScript和 你的CSS 就像你在哪里存储那些 事物的静态文件我们会
绝对谈论但是但是 设置是控制所有这一切
对，所以这是非常基础的 我们所有的Django项目是如何运行的
这就是我们的主要配置 我 意味着它就是我的设置 意味着我们会谈论并使用这些东西
很多 ， 但我做了什么要 提 实际上是实际的最后一件事
事情就是那个数据库的东西 我们在这里有这个错误 并运行我们的
数据库我们可以在py上运行Python 管理 迁移 所以它的 作用 是什么
实际上无论如何都会下沉 我们在Django项目中的设置 无论 我们 有 什么 应用程序，我们 都会
又 过 这本 肯定，但所有 这就是这里， 所以我们有 DB
你我会3我刚才说嘿数据库make 确定你和Django都熟了
你准备好开始工作 所以，如果我真的改变了这个db2 我
可以再次运行迁移 ，你是什么 知道Django实际上创造了一个全新的
数据库对我来说现在这几乎是 如果有的话， 只有续集 精简版 才有效
你必须要MySQL或PostgreSQL 自己创建这些数据库但是 对我们来说，我们可以 做任何我想做的事
就数据库而言，我是 要使用默认的DB 尘土飞扬
光3 我要继续删除 那个文件现在我们有了更好的
的设置是如何工作的 ，让我们 了解 继续创建 我们的第一个应用程序
下一个
现在是时候谈论 的一个 Django的关键组件就是
您应该将应用视为应用的应用 组分或 的大 碎片
Django项目很好， 所以 他们就是 可以 容纳的 小点点滴滴
代码量很大， 但 他们不喜欢 应用程序，如您的手机上的权利，使 如果你跳到我们看到的代码本身
我们已经安装了一些应用程序 默认情况下， 右 所以这 也是地方
你还要放第三方应用程序 你自己的权利 很酷， 所以让我们
看看 默认 或 内置 那些我们可以看到的第一个
一个叫做管理员，如果我进入我的 项目并输入管理员我会看到
像 这样的 Django 管理好，所以我已经
填写用户名和密码 因为我一直使用Django 但是
你可能在这里看不到任何东西 但你知道并且实际上是 问题
应该是我真正得到的 在这里，我会继续前进并 跳跃
进入我的 终端 通知我 有两个 终端窗口打开我有一个 是
运行服务器，然后运行一个 只是在 叮当 项目 的根
也被称为堡垒 管理顶级pi是你 可以看到我是如何到达那里的权利有这么
肯定有几件事情 需要首先发生我想要的事情
当我运行Python时 确保我 管理顶级py迁移 我看到了什么
像这样，我有一些应用程序 那些建在那里的那里 默认情况下， 我不希望看到错误
这里基本上你肯定 想确保我的网格完成
因为我们要 建立我们的 第一个用户 这就是 我 设法 创建的 Python
一个命令允许的超级用户 我们创建一个有权访问的用户 管理员这不是普通用户
这只是最终的 超级用户 这样你就会结束这个用户
在我的情况下使用我将使用 CFE的用户名我要离开了
电子邮件地址为空，然后我 我 现在 要输入 密码了
密码输入实际上并没有显示出来 而且当你正在发展的时候
你是 在你的学习中测试你可以使用
无论你想要什么传球手 不必那么安全
当你上班时保持安全 建立一个真实的项目，当你
我真的想要 安全， 所以我得到了 我的 用户名在这里和我的密码 在我的情况
只是报警代码全部小写 和我 实际上可以登录到该管理员确定 ，所以
我在这里做的是我实际上创造了一个 实际上在 数据库中的用户
Jenko为 我 做了所有这些事情 我没有 必须 做任何 非常酷的 事情 使事物超级容易超级 用户
友好和同样的行动 会 无论数据库是否 漂亮 都会发生
很酷，所以我们实际上只是谈了 第一部分或前两部分
内置组件或内置组件 安装的应用程序权限，这是管理员
关闭是那个用户权利所以我实际上 创建了我创建超级用户的用户
然后管理员就是我刚才记录的内容 向右，所以我可以点击 用户和我
可以看到更多关于这个用户的信息 进来 ，说贾斯汀米切尔
在 CFE通讯 和 团队的权利和你好 你知道 我现在的用户是什么
可以保存它我可以做各种各样的事情 在这里 我们会谈到管理员
更多关于未来管理员的事情 它真的很酷我也可以删除用户
我可以回去 ，并 创建新 的 你 知道有很多内置的 东西
关于非常好的管理员但是 这就是 关于应用程序的 所有 权利
接下来的几件事情他们不是 与我们息息相关 所以我们想谈的 是
实际上创建自己的自定义应用程序等等 我们已经做了一些基础知识 ，现在让我们
做我们自己的自定义应用程序并拥有它 当我说自定义时 ， 在管理员里面 app我的意思是 我们自己的 数据
数据结构让我们看看是什么 看起来 像
在下一个
最后一个我们看到了一些 Django项目的内置功能 我们看到了其中一些组件
也被称为 允许我们的 应用程序 有一个用户和一个管理员这两个
事情是惊人的，他们真的 易于使用，非常用户 友好， 但
我们想做什么和目的 使用 Django是建立我们自己的 应用程序
我们自己的组件现在让我们不要混淆 应用程序与您手机上的内容类似
电话它更多的是关于一点点 这个更大的整体
这是你的网络应用程序，所以我们走了 提前并跳进 你 的根
一般项目我 会用 那个词 很多Django 项目 的根源 是 提到管理高，所以我们
管理了高是假设 你 激活您的虚拟环境
这就是你想要的地方 我说Django 项目的根源我是
我会假设那是这样的 在那里航行， 当然这是
它实际上 位于我的系统上 对你来说可能有点不同
如果你不知道怎么去那里 只是 回到这个系列中的几个视频吧
下面的链接， 确保 你看 无论如何，那里有一些基本的东西
让我们继续创建我们自己的习惯 app所以我要去python 男人跳你
我启动应用程序然后无论想要什么 现在给应用程序命名我 会继续
并将其命名 为产品 ，您可以 这样做 同样的事情是按下并重命名
它可以用于博客，也可以 用来 做 个人资料或你可以做到 购物车
对，所以我可以 把它命名为 各种各样的 事情是对的，老实说那四个
名字实际上适合像 电子商务项目是正确的，如果我们看
回到 代码本身， 你看到 了 嘿，我现在已经拥有了所有这些新代码
里面那些不同的名字 我刚创建的应用程序 现在这确实向我们展示了一些东西
可以 对工作就像 我们可以完全 构建一个完成所有工作的整个项目
这些东西，但也应该是什么 说明你的是，每一个
这些应用程序应该做的一两件事， 一个 事情 真的很像产品的应用程序
应该真的只是做产品相关 事情没有
与心有关的 事情应该 是 应该在自己的购物车中分开
app 呃我们会明白这意味着什么 后来，但这里的想法是 你的应用程序
应该是非常狭隘的 焦点 一旦它开始越来越宽
你开始将它 带入 另一个 应用程序 而且你看到它真的很容易
创建 一个应用程序，所以真的没有 除了或许以外 不这样做的理由 懒惰，我想避免 在 那
为你，长期来看就是为什么我要 告诉 你 现在好吗，所以我想表现出来
你如何使用应用程序的方式 存储数据好的应用程序真的
适合 存储数据和映射 什么 要存储到数据库的数据
所以这意味着我要继续前进 删除我的其他一些应用程序
刚创建， 因为我们只是 简单 不需要它们，因为 我们还在
学习正确 所以我删除它删除了 其他的
现在我只有产品如此开放 我们将谈论 模型停止 馅饼
其他文件稍后但现在 只是 models da pie我想存储一个产品 对，所以我希望我的后端有
我创造的产品的记忆如何 我这样做
好吧，我写了一个叫做产品的课 在这堂课中 我想要各种各样的
属性正确所以我想说 它有一个我想说的标题 它有描述，你知道
也许就是现在 也许 我只是 想要标题描述也许我想要
价格太好了 让 我们说标题 描述和价格现在我想要这些
映射到数据库所以我该怎么做 实际上在Django中做得很好
实际上相当简单， 我们 使用称为模型字段的东西
models dot我们只输入模型点 它已经默认导入了，我是
只需为每一个使用一个文本字段 现在，我们将讨论更多内容
先进的领域，但我们只是使用 每个文本字段都可以 ，然后我的
产品本身就是我的实际课程 在这里使用我需要继承
默认的Django类 MA 好吧所以这意味着它会得到一个
很多我们绝对需要 的 功能 做这项 我们 不会去的工作
到目前为止还有更多 先进但这里非常简单
称为产品的模型 将映射到 数据库，我们将 在 那里看到
自从我创建模特间谍以来的那一刻 我创建了这个应用程序，我需要添加
应用程序在设置安装的应用程序和 这真的很简单， 我只是把它 自己
在这里，只是写出来的产品 我创建的应用程序的名称
那是这里的文件夹所以我有 我已经安装了应用程序的产品我 只是
要继续并在 它 之后加一个逗号 现在该怎么办
我当然要确保 我保存我的 设置顶部馅饼和模型哑饼和
现在我可以运行的是这个叫做的东西 进行迁移，因此Python设法py
进行迁移，然后进行Python 管理 顶部py迁移好了所以这些命令
你肯定会想要 记住 所以Python管理py进行迁移
然后 Python管理 了UI迁移 好的，所以 我第一次这样做了 第二次我 做了一些改变
没有 做任何事情，正确的 ，所以我想 运行 这些 在 彼此结合 每 一次我都改变 模特顶部
派， 所以让我们继续前进 ，加入另一个 在这里， 我只是 说活跃
好吧 或者我们只是做 摘要而不是 描述对，所以我们得到了描述
总之，这两个可能会去 手拉手， 但现在我做了 一个改变
到 模型我保存了它，现在我想要 要 再次进行迁移，它会发生 问我 基本上是违约，我是
就这样，现在就说2 我们稍后会进入，但我会
继续说默认 并说这是 很酷的惊叹号好吧所以 我跑了make
再次迁移，然后我继续 现在再次迁移为什么我这么做
向你展示这 一切的主要原因 要 记住，我们总是想要跑步
在我们制作时进行迁移和迁移 随时改变模型
任何超级 适合的地方 很重要，所以我们有这个模型
现在，我想看看 这个 管理员内部的模型所以我所做的一切
这里进入M高处并做 从点模型导入产品所以这个 是一种所谓的相对导入
它正在从中导入产品类 模型PI 和 它的相对因为
管理员PI和模型dot pi都在 同样你知道他们所在的目录
同样的模块，所以我可以真正做到 这一点 相对进口，我在这里做的就是 管理点网站注册和产品
我们保存它， 并保持我们的服务器 跑步我回到我的项目 Maya
Django管理员我现在看到这个新东西 这里称为产品，我可以添加一个 新的
产品新描述一些价格 和 总结嘿我已经 默认了
在那里它说 这很酷 真棒嘿解释标记 命中保存
我们现在就去创造一个新的 产品并将其保存 在数据库中
而这就是 这真的核心 它的基础知识就在那里
现在保存在数据库中的基本模型我 可以一遍又一 遍地 使用它
保存数据库中的各种数据 这不是一个很好的模型我会说
像这样的人非常有限 我们将如何进入更多的范围
以后的高级功能，但是 现在这很酷 ，就是我们所有人
必须做一个模型就是 这样 我们仍然 需要做的是看 怎么做
这在Python外壳， 是 实际上只是使用Python命令
保存一些东西
现在我们要做的是只使用 Python shell 创建新产品让我
在我们想要使用之前使用管理员 Python的外壳，从而做到这一点，我想 确保我在的 我的 根
Django项目 你知道我们管理的是 pi 而且我是
要运行Python 管理整个py shell 所以当你管理UI shell时
这意味着所有的Django 项目的东西将在 一个 内部工作 Python解释器所以我点击输入 它
看起来像一个普通的Python解释器 但这不是因为我可以做到的
产品型号进口产品 好吧 所以我可以做这些 导入我可以导入类就像
我们做的动画就是这样做的 这是一个相对重要的管理员
更接近内部的绝对导入 这个节目让我继续前进并 进入
在这里，我可以做 对象的 产品 这一切都是内置 的Django 命令 我们将在 某个时候 克服 这个问题
未来但是现在如果我编辑我 看到这里只有 一 件事
对那里只有一个项目，那就是 因为我只在视频中保存了一个
这就是我所做的一切， 你 可能已经做到了 否则你可能会看到更多
如果你有那种方法，这很酷 你正在试验那真棒
但对我来说，我想要的更多是我 我想在这里真正创造它们
在shell中我想拥有这个能力 做这些命令所以我们很简单
只做产品 创建的对象 然后我们想创建新 的
在这个命令本身里面 自己创建的这个再次被内置 到 Django这是默认的
通过jingo 标准对我们的模型如此 看看所需要的东西
这个产品 我们有四个领域 是必需的， 所以我可以通过这四个
在这里作为标题新产品的领域 写作和描述作为另一个
正确的价格，你知道 什么 价格，然后最终汇总
甜蜜好吧 注意这里的 每个 参数都是
一个字符串本身就是 这样我 就 这样 做了 目的也在那里
这就是我如何创造 一个新的 产品 一击 即可 创造它 我能做到
按下并再次输入它正在创建 新产品和新产品 ，如果我做的话
那个产品 再次反对我 看这里是一个列表，也称为查询
再次设置我们将在稍后进入， 但是 它向我们展示了所有 这些新产品
创建现在假设我们仍然有 我们的 服务器运行，我可以关闭
它用 ctrl C，但如果我 去 提前确保 我的服务器 运行我能回来 到我的 管理
好吧，所以你登录你的 意思是你 看到这个你去产品你是什么
知道我已经拥有了所有这些产品 这就是 实际 的另一种方式
只需通过创建数据库中的东西 使用命令代替你知道
点击并浏览 形成并做所有漂亮的事情
真棒 所以我们还有很多工作 要做
显然我们希望 在另一个中看到这一点 形式， 但在我 跳到 另一种形式之前
我想知道我是怎么做的 实事求是地创建了一个模型， 是不是
所以像错综复杂我不应该 实际 传递一个字符串，它应该 是 它的价格
实际的小数，也许是 标题不应该是这个长文本区域
也许它应该只是一个短场 所以肯定有 我需要的 东西
要更改 为此 产品型号 我们会做的更好
下一个添加 新字段
所以现在我要做的就是 重新开始这些模型 我真的 不喜欢我 在这里做 所以 为了
对我来说 ， 我可以删除所有 迁移文件夹中的文件 和 只是留在那里，那很好
如果你有，也删除PI缓存 在那里，然后我也要删除 我的续集 我的数据库 还好回到了
我的模特我想改变这些领域 与 我 刚刚做的 不同之处 这是你经常做的事情
你在学习的权利 ，你会删除 那些迁移然后你会删除
那个数据库肯定会丢失一些 数据，但这没什么大不了的
学习过程和 那个 其实真的 很重要 ，做
所以我希望这些领域 将它们转变为某种东西
更真实的是 他们是如此让我们 继续 看看参考文献
在该 文件的自己，让丁当 project comm寻找模型 字段 字段类型，你可以快速做
谷歌搜索 这个，你会看到 所有不同的参考
字段类型和我们 实际使用的内容 正如你所见，我只是其中之一
滚动那里有很多，所以我 用眼前这个文本字段 这是一个
我们在这里有很多 让我们继续使用一些不同的东西
首先应该是标题字段 限于它有多长 ，所以我 将它改为char字段 ，我会
添加称为最大长度和 我最多可以使用120个字符
这仍然是一个相当长的冠军但是 这就是我希望它是 ，当你
使用char字段你必须使用max 长度所以最大长度等于所需 好吧，我会把它留给 一个人
那一刻并保存 它，现在我 要去了 提前尝试运行 我的迁移 对，所以我会去 Python管理你的 py
进行迁移我得到一个错误说char 字段必须定义最大长度
我刚才提到的属性是 需要但幸运的是Django会告诉我们
如果我保存就需要一些东西 我的一些箭头正好消失了
实际上是描述文本字段 有道理， 但如果 我们的 产品，我们
不一定 我希望有一个描述然后我可以
说空白等于真 ，我也可以 说没有非法是真的
我会解释这些差异 片刻之间，这两者之间
价格应该是我们的价格领域 应该是一个文本 字段或应该是它
好吧，让我们 看看是否有小数 嘿，你知道的是什么？ 十进制字段和浮点字段我是
会坚持使用十进制字段和这个 是文档进来和制作的地方
事情对 我们来说 要 容易得多 告诉我们什么是必要的好的，那是什么
在这里需要这两件事 在 这里 是 必需的，如果我们去
一点点 它说持续时间字段 我们 不会用它，但有
那里没有 必要的东西 我们有电子邮件领域有一个
要求，但它已经在那里 它已经内置， 所以这将 需要
一段时间习惯 但那是 基本上是 怎么回事
文档 对， 但它也向你展示了
它有那些所需的文档 换句话说， 让我们回去吧 在这里， 改变这只是 一个小数
字段让我们保存它 我会保存 它 运行这些错误，它告诉我这些
错误它告诉我到底是什么 但是文档也是 正确的
说最大位数和小数等等 让我们继续添加那些
产品小数位将是 两个 就像你知道它不会是三个
小数位， 你没有三个 美分，然后最大 小数
数字与此数字 的位数 会允许像千位数一样
十进制数实际上很多 是的，所以只需 在你的垫子和
你的脑袋里有一万个 数字 美元这 很酷，所以我现在
有一些更强大的领域 总结我可以把它留作文本字段
也许我想总结一下 默认情况下我可能想要 两个
肯定会在那里，但我会去 提前 摆脱 那个默认 我会
解释一下只有一个默认的东西 最 有可能在下一个视频中的时刻
我会解释这是 怎么回事 与 这里很快就 可以，所以我现在保存这个
我需要做的是实际 运行我的 迁移再次记住
每当你改变模型停止高位if 罗恩蟒蛇男人阻止你我做
迁移然后Python 设法 py 现在迁移 我删除了数据库
这也意味着 我需要 运行 再次 创建超级用户 ，我
要把 它放在SC Fe型中 学习代码的密码，我们去
我的服务器仍然通过 所有 运行 那我的服务器还在运行我 在这里刷新Django管理员我
仍然要回到登录和我 看到我居然没有 任何
产品 了，但如果我去添加一个 产品的布局 已经 有了
改变标题不可能有些长 标题我可以说新产品和
描述如果我，我可以写东西 想要价格现在有一个数字 项目
在这里，我可以实际写数字 29.99美元 ，我可以添加一些新的摘要
摘要感叹号我点击保存什么 你知道不是 一大堆不同
好吧 ，考虑到这一点让我们看到它 在shell中 也是如此python设法py
贝壳，我们将继续前进 从产品顶级型号进口产品
这是 它只是 完全相同的事情 去那个 地方 还是那个地方 产品是我们打入产品对象
创建标题等于更新的标题 价格现在我们可以把实际小数
数字在这里没有字符串所以 39.99和 然后总结现在字符串真棒酱
太棒了我们点击进入它看起来像它 创造它没有我们回到的问题
我们的产品 在管理员中仍在运行 我们看到我们有一个新产品
这里所有 的 东西都被保存了 所以它就是这样 把这两 件事情 成
互相所以我们结合 已经开始 保存 我们的东西 已经有希望看到它是多么容易
Django中的地图数据
而这一个我要 做出新的改变 我们的模型没有删除
数据库或其迁移 事情这样 就意味着我们要
其实知道 多 一点 有关 两者都 发生了什么
因此，当我们 运行进行迁移时 并迁移它同步数据库
我们的模型，但如果我们增加一个字段到我们的 模型数据库不知道 那个领域所以我们必须确保它
了解并进行迁移和迁移 经常允许这种情况发生，但也是如此 介绍了一整套类似的问题
标记就像正在添加的字段 到数据库什么所有的
以前的事情就是那个词 数据库让我们看看我的意思
对，所以如果我跳进管理员，我明白了 我在这四个领域是正确的
但如果在我的模特中， 我决定说 特色领域，我想使用
让我们说模型dot boolean field okay 所以我现在 正试图添加 这个布尔值
字段，但这个 特殊的对象 保存的对象不知道这个 场右侧 的所有将来的可能，但
如果我去的话，这个特别的 不是这样的 提前并保存了这个并转到了Python
设法让 py进行正确的迁移 你这样做， 默认你得到这个
错误它说 我做 了一个不可知的领域 提到我会说出这些
事情意味着这是 正确的 所以，如果我在这里说null等于真
这个错误不会发生 因为它会说所有 这些
旧的价值观只是让他们空虚 数据库，他们可以是空的，这很好
不用 担心，但我不想这样做 相反，我想做的就是我
想要一个旧物品的价值 数据库它可以是一个项目
一万叮当其实没有 知道有多少 物品
尚未发送的 数据库 再现它可能是零项目
什么Django的是要脱是 这个 迁移文件夹在这里它正在消失
这个初始值 通知 这个初始 值 一个就在这里
检查这里的内容 模型它说哎新字段
你正在这里添加这个新领域 它不在最初的描述中
加入它 所以我们要假设 数据库需要知道的
那里发生了什么，所以我们需要 告诉数据库我们的默认事项 你现在应该这样做
你可以在这里做几件事 在代码中你可以说不 合法
是真的，或者你可以设置默认值 或者 你可以做到 这 一点，所以你可以
在有 正确的默认 所以 null等于true或默认值
在这种情况下，这是 一个布尔字段 这意味着真或假
你可以说默认等于真如此 你可以说对了
那些和代码或你得到这个错误 并且您可以提供一次性默认值 对于之前的所有事情
在那里， 我 会说一个和 字面意思是正确的，所以这意味着
数据库中的所有内容 它会经历 所有这些
目前已经在数据库中了 它会将那些东西保存为拥有
具有真值的特征字段 而不是虚假 我真的在那里，我们现在去做
迁移到底是做什么的 它为我们开发了一个迁移文件
文件，这就是 这里的 数据库仍然不知道
关于 它 不知道的 任何事情 关于这个领域还在 偷， 因为我们 没有运行迁移，所以我可以
回到我的Django项目和我 得到这个谢谢 没有这样的专栏他去 那是对的，这是你的错误
可能经常看到我知道你会 其实是因为人们 忘了
这样我们就想运行Python 管理了 py migrate 因为我们总是 想要 make
迁移，然后迁移然后 我们 现在 去， 我们有一个改变
实际上，我们看到了所有的 存储在中的旧对象
数据库的特点是真实的 在新的存在没有默认
那里很酷，所以那真是 太棒 了 也就是说我的模特就是这个
夏季 如果我不希望这样做怎么办？
好了，我可以说，空等于 是的，但是让我们继续说空
等于假， 看看会发生什么 在这里我做了什么我做更改
模特所以我 必须做 什么 运行Python管理你我做的
迁移然后 Python 管理 WI 现在，我已经拥有了那个，因此迁移得很酷
回到这里我刷新总结是 不再大胆， 我现在可以离开 它
在数据库中为空， 所以如果我改变 空白等于错误保存再次运行
进行迁移 并再次 迁移 我可以 回到这里，刷新 并注意到
现在它说它是大胆的，所以如果我有 保存并 继续'它会给我这个
字段是必需的所以这一切都 在做 空白与 该领域的关系有关
渲染null与。 有关 数据库，如果空白是假的
这意味着 它需要 那么它会 根据需要渲染， 没有任何内容
我们看到的数据库 这两 件事情在这里，但无效 true或false表示 数据库
在数据库中可以为null或为空 酷从而改变 一些项目
以前的模型非常 非常难 即使你觉得它 有点 像
挑战这样做几次 打破它 引领迁移
这里 的迁移 已经失败 了 在数据库中领先运行所有这些
这几件事再做一遍 时间会让 你感到舒服
有模特我保证你愿意和 然后尝试向某人解释它 尝试
向朋友解释一下制作视频 试着解释我所有的事情 刚刚回去并引用他们阅读
文档无论你需要做什么 真的更好理解这个基本怎么样 模特的东西是有效的
我们可以做更多的事情 模特，但我会离开 它
就像Django还有其他的东西 确实很好，我们想要开始 谈论和那有关
视图和网址
所以我们想改变这个默认值 主页到 我们自己的自定义 主页 怎么样
我们去这样做 很好，我们做 这是通过创建一个类或一个函数
基于视图，因此视图意味着它 要处理我的要求， 我会进入
所有这一切之后，但现在 我们 什么 想要做的只是说明一下
我们正在这样做的目的，我创造了一个 新应用程序称为 页面 我 添加了该页面 你可以设置已安装的应用程序
我想养成这样做的习惯 每当你创建新的应用程序时，你
现在应该知道如何做到这 一点 为什么我没有这样做， 所以内心
用完了我们看到什么都没有 在这里，这 是在那里 你 会 是
创造各种东西 你 页面将视图视为一个地方
只处理你的各种网页 想到这一点 ，我们 会这样做
这使用函数或 类 用Python写的所以我是第一个
要做的只是一个主页 和 基本上它只是一个非常简单的 功能它是一个家，你给它一个名字
无论你想要什么名字， 我 都可能 说大多数情况下你可能会 添加视图
就像你不会 把它叫回家一样 该视图的页面 对，所以我会进入视野和所有这一切
以后的东西， 但我们 只是称之为 家 查看 好 ，然后它会 返回
我们想要 返回一些HTML的东西 所以我们说， 比如 我想
如果你是的话，现在就说h1 hello world 熟悉Python， 你会知道的
这只是 一个非常简单的Python 功能它实际上没什么在这里
与Django有关，所以我们需要 现在改变它与Django有关
该字符串 这里有HTML 它 这是一串 HTML代码而不是
我们将讨论实际的HTML代码 以后，但如果这是绝对有用的
我们想要只有 一个HTML字符串 代码由于某种原因但我怎么做 实际上使这个功能做到这一点
我们使用Django HTTP 导入HTTP响应我们的HTTP响应
可以用那个HTML字符串调用 代码它就像我们 真的一样
接近使 这成为一个实际 功能视图或功能页，以便
我要继续 添加args和 关键字args 在这里， 如果你不是 熟悉args和关键词args 我
绝对建议你 看 那个 在Python上， 这是Python特定的
你不是不担心它 好吧 你 可以查一下但是现在我们
可以只是玩这个好，所以我 现在创建了一个函数所有这个函数
确实会返回一些HTML代码 问好世界， 但 它又 回来了
在称为HTTP响应的东西中 好的，让我们真正做到这一点
我要存起来，我 的 希望会 这里最好的刷新它不起作用
还有， 如果我尝试 不同的页面一样 ABC也说不起作用 找不到页面，它说了些什么
关于URL这是 我们的地方 实际上我们的 URL 包裹在 哪里
网址进来， 当我们过去 的时候 我们提到的有关 网址的设置
就在这里，所以URL在Tri Jango URL中 或以其他方式设置模块或
URL中的设置文件夹 配置文件夹有设置和
在那里的网址，它有我们的网站 已经使用哪个是管理员但是
这是它实际 拥有的唯一途径 现在我想做的 事实上是导入
该视图现在可以使用我的URL 在这里已经有了一些 这样的东西
对，所以这实际上是为 我们 写的 所以我可以摆脱 他们拥有 的 东西
用类似的方式写的 从页面右侧，所以 页面将采取
我的应用程序导入视图的地方，然后我 可以完全添加这个URL模式
就像在代码中或在代码中所说的那样 在那里评论，我没有把它称为家
但相反， 我 称它为主视图 所以那里
我只是放弃了他们给的东西 我的家庭观点 和家庭观点，我们保存
让我们回到我们的主页 你好 世界很酷它实际上 在那里工作
我不喜欢的几件事 尤其认为是一个好主意
这是怎么写的，如果我 想要使用产品视图和
我从产品导入视图中去了东西 变得混乱， 所以不要这样做 go views import home view import
您要使用的实际视图和 然后把它放在那里 好吧我们
说， 当你知道 同样的 确切的回答哇 ，这 很容易 在 这里工作并不是 很多
我们来谈谈URL模式以及如何 这部分与...一起使用
我们现在查看您注意到的网址格式 我有这个空字符串
这条路径，所以 如果我真的复制这个和 在这里贴下来 ，说家里 放
在它的最后一个斜线并保存 我真的可以进入家里 了
如果我使用的话会出现同样的事情 不像ABC这样的不同页面
显示， 找不到 页面 因为我们还没有路由的路径 ，
查看权利让我们说 比如我 我想打电话给这个联系人，你知道 我们可以实际上忽略这个名字
现在的东西， 但如果我想打电话给这个 联系确定它实际上可以去
相同的主页视图，但你真的 可能会希望 有一个又一个
我们称之为联系人视图 我们和关键字args然后我们会
返回HTTP响应然后我们就会 说H1 和联系人页面，并收 出
那个h1标签然后我们会导入 就像那样
在那里，我们这样做会给我们 那个联系页面 现在 非常 有用 这内部实际发生了什么
路径正确，所以 你去的时候 的URL Django页面正确，所以我们去了 一个
Django页面就在这里，Django 知道 正在被要求的东西
不同所以第一件事就是这样 被要求只是这个主页 然后， 如果我去另一个页面，如
联系这是一个新的请求，它是 得到那个项目在那里 和Django足够聪明，知道嘿
正在请求该URL的 内容 URL间谍 或那个主要配置
我们默认设置它会 寻找那个 URL，然后用一个
匹配网址，它将寻找一个视图 这是为了 处理该URL
是的，所以我们已经有了那些观点 我知道我们可以处理它
拥有我们想要的 尽可能多的观点 完全取决于你，事实上你的
项目可能有很多观点 所以像所有人一样喜欢社交 那些你 绝对 可以 开始的 事情
与玩弄，我建议 你建议你这样做
嘿 ，玩耍的感觉 这 实际上是 如何 工作的 ， 怎么 可能
我现在 制作了所有自己的页面 正在 这里 缺少一个关键的事情
但我不会 进入 这 只是还没有 我 要说 的是，请记住，我们在
转到我们要求的URL 从那个URL， 它有点 像敲门
在 某人的 地址 的前门 我的意思是它并没有太多不同
除了这是数码之外我们是 去那里我们敲门我们要问
为某事或我们要求 在这种情况下，我们要求的东西
一个 网页，通过 该网址 有啥 实际发生在我们这些观点上
有args和Kure狗只是捕获 如果我 真的将它打印 出来的 话就是一切
让我们继续打印args和 关键词艺术 ，回到 那个家
页面， 看看 我们的终端，我们看到 这里是 正在 事
通过我们有这个 WSGI请求 嗯我 请求一些东西，这意味着
它实际上是一个即将到来的争论 通过这里我可以说请求然后
args关键字艺术，所以每个人都有 请求来这里默认 情况下 ，所以如果
我现在回去刷新我的args和Q 狗是空的，我的要求是
绝对在那里我可以打印出来 那个请求，我们可以看到它是什么
这个要求做得很好吗？ 那里有很多不同的东西
它只能做其中一个 对我们来说重要的是请求 用户 这样做
这是认证的东西 进来这是登录你的地方
用户进来但这也是我们的方式 视图可以访问，所以如果我刷新 在这里， 我可以看到 嘿，我的 CFE用户
登录 如果我打开一个隐身窗口 或 只是另一个浏览器或退出我
会发现它是一个匿名用户 它不是 真正记录的人
所以这两件事实际上都是有效的 他们真的很高兴知道因为
然后我可以用 各种各样的 东西 这个请求用户现在有点了
位 更先进，所以我们到达那里之前 我想制作这个基本的 网页或
这个基本的应用程序 更适合 我们到目前为止我们有这个HTTP
响应，它呈现 我们的 HTML和 这很好， 除了你了解你
希望可能熟悉HTML 你有一些背景HTML
将h1渲染得 不是很好 好像通知，就像我的头 是空的 这只是h1，这是唯一的事情
那回来所以现在 实际上是一个 良辰股票说说
Django模板引擎让 我们可以 覆盖此一个 释比与响应
还有一种叫做Django的东西 模板
我们快速回顾一下 它的 URL 我们敲开了某人的门
请求服务器或 Gengo 返回对我们的响应
总是发生的过程 正确配置Django项目
当这个情况发生时 Django识别出正在使用的URL
要求或者你知道网址 被要求 它将它分开
弄清楚将要发挥什么功能 应对是正确的，并与
功能我们想要回应一些 基本的HTTP响应
默认一个，这只是你的大海 响应，我们可以传入是否是
HTML本身或 只是一个字符串它没有 我们可以返回HTTP响应和
我们甚至可以归还它 它可以在这里是绝对空虚 它仍然有效，所以这仍然是一个
有效的页面， 但我们想做的 是 而不是在这里写字符串 我们
想要使用一些内置的快捷方式 Django有，你可能已经注意到 了
快捷方式点导入渲染就在那里 默认情况下 ，当您创建新应用程序时
那是好的， 所以我想 居然能 这样用自己 如此
而不是返回HTTP响应 我想做的是返回渲染，它是
我会考虑一些论点 请求请求参数 通过 一个 将 成为一个
例如，模板名称 家庭HTML， 最后一个 是上下文或
现在我们只是做空 字典我们将讨论 上下文
以后这就是你的能力 返回某种HTML模板或
HTML文档无论哪种方式，所以 我们 怎么样 实际上 我是如何找到这个的
比如我保存的地方就在哪里 并在这里刷新 我得到这个错误
模板不存在以及它 当然不是我们没有
创造了它 ，它正在寻找它 在我们的网站上，但它没有
实际上知道去哪里， 所以我们需要 创建 一个位置
这就是我们现在会做的内 我们在Django根目录下的SRC文件夹
项目我们要打开一个新的文件夹 这里 称为模板这个文件夹
我们 将 保留所有模板 看到合适所以 我们会 在 那里
继续做家庭点HTML制作 新文件通知模板在线
与页面产品和Django 配置文件夹以及 管理 顶级 派，所以我要把一个家庭点HTML
在那里，我 只是 打招呼 世界关闭h1， 然后做一个P标签
这是一个关闭 P标签 的模板 好的，所以我们 保存这似乎是事情
看起来 不错 我们制作了一个模板文件夹 home dot
html在那里我们想要渲染 出来 保存它让我们回去重新运行嗯
这个模板还不存在 是因为我们实际上没有 设置
Django知道这些模板的位置 我的意思是我确实把它命名为模板
这是该目录的任意名称 是一个任意的名字，它是最好的
练习名称，但它仍然是我 把它弄好了 所以在设置中不是 pi
然后记得我说我们要去的地方 如果你 看， 回到模板
那个视频 这就是我们想要实际提出来的
在我们的ders或我们的目录中 现在这个目录的位置我
可以硬编码到你的路径 模板，让我们这样做， 让我们走吧
前面 说这里的PWD是我的常态 在这里投射， 这 是根本的
我需要做 的Django项目 是这里的名称添加模板作为
我点击保存并刷新的文件夹 你知道我们的模板是什么 看起来很好，他们实际上在那里
但如果我送这个给 你在你的 计算机它不会工作，除非
您的用户是CFE所以我们需要做什么 我们在这里做的很复制
这实际上相当简单 但 基本上 有一些小的例外
我希望把它独立于操作系统的我想 让它允许我发送
代码给你， 它仍然有效，所以它是 B. 然后加入baster的 OS 路径
模板，所以我只是加入那个基地 manage top与的目录
我刚刚创建的模板目录 我在那里 刷新 它还在工作
在模板仍然显示 等什么 这使我 能够 做的就是使 关于HTML联系人的多个页面
HP毫升等，然后我就可以 完全带来所有这些代码 在这里说和接触，然后
在我看来就像我在家庭观看一样 我可以阅读更改这些和
联系内容到正确的 名称 关于HTML和 HTML I的 联系方式
说刷新一切都在寻找 好吧，去看看它看起来很酷
它正在呈现HTML注意到它 这里没有点HTML
它实际上不是像呈现 出 这是原始的HTML文件，实际上就是这样
通过Django和Django是 渲染出每个 tml
非常酷， 所以如果你在网络上工作 在你知道那个点之前设计
HTML消失使得这些URL如此 之多 更清洁和更容易 了很多 导航和分享，它也成功
在我看来看起来更先进， 好吧 现在我们有办法渲染出HTML
文件， 但你可能会看到那里 可能会有很多重复性
发生在这些文件中 所以 我们需要 谈谈一些基本的继承事物
与Django模板这东西 我们将在下一个做
时间谈多 一点 有关 我们是 Django模板引擎
实际上已经使用但我们想要 了解更多信息， 如果我看一下
像这样的东西，我们有两个卷曲 括号请求dot用户两个更卷曲
括号这是Django的东西 默认情况下 ，它实际上 会 呈现出 的相对信息， 以便
我们实际上刷新了我们的主页 我看到CFA用户是我的 用户名
如果我打开 隐身 窗口，我会看到 匿名用户，这是预期的 模板内置的部分内容
引擎我们可以 使用用户模型 在它，我也可以说点是
已登录的身份验证和 它会说是真还是假， 取决于是否
他们已经登录了，所以有 肯定有很多 的 事情可以做
在那里我们将谈论 更多 很快所以一定要订阅 得到 一切
但你还应该注意的是 我们的观点有三个
实际可能的不同HTML页面 跨越每 一个 让我们共享属性
比如导航栏 或更多 重要的是你知道的一些元数据 如果我们在这里和我们检查元素
看到像你知道的标题标签或 描述标签或其它元数据
我们可能需要他在这里实施 或一些CSS数据我的意思是有很多 的
每个页面的东西 实际上可以使用 所以这就是模板继承的地方
进来，它真的很有用 对我们来说，我想做的就是创造一个
所有这些 其他的页面 页面将借用，所以继续
并基于HTML基于HTML调用它 是惯例，就是你自己是怎么 我想打电话给你，你会
想要使它成为一个真正的 HTML文档 所以doctype HTML然后HTML 关闭
HTML然后是正文
和身体好然后我们想做一个 头 标记在这里 ，在这种情况下只是为了
表明这 其实 是 工作 ， 我们将继续并添加标题 标签
说可待因 为 企业家做 尝试Jango嘿嘿好吧 不是真的
聪明，但它是我们得到的东西 我们的头标记我们的身体标签我们有一些
HTML在这里我们有一些东西和 现在我想做什么呢
我想要的其中一个页面 所有这些东西完全相同的东西
我怎么做 我能做的就是进来
这基于HTML大括号 ％ 阻止内容％ 花括号％卷曲
括号块或大括号％块 或者更确切地说 是块，所以 这个语法
你可能看起来有点奇怪 但是 基本上它就像嘿嘿说的那样
在这里 无论发生什么事之间 在这里让我们替换它，所以取代我
好的 这就是我所说的我们要用的
这些阻止这些完全一样的块 上 任何给定的页面，以便让我们说， 例如
我要继续这样做了 并且就这样说， 所以我有一个
在这里阻止，这就是内容 会是它本来就是
复制在这里带来了这里 我必须 做的就是让所有这一切发生
这些是基于HTML的扩展 大括号百分号标志着 它
肯定会有点混乱 确保 你正在测试它 你自己 确保它的工作正常
所以我现在 有一个新的东西为家庭点 HTML 回到主页看我的标题标签
如果我刷新，现在改为编码 对于企业家来说，正在尝试Django
标题标签确实改变了 它是基于HTML的基础。所以
让我们再来一次关于代替 关于花括号
并基于HTML扩展好吧，所以这个 如果我，现在正基于HTML 就这样保存了它并进入了
关于页面 它只是说取代我啊所以它是
渲染出这个默​​认页面 所有它这样做，以便我
实际上替换了 所有的块 我必须使用它
我确实阻止内容大括号哦 大括号 ％block就是
Django相关内容是一个 我创建的变量， 然后我们这样做
在块中关闭它 你也可能 在块内容中看到这样也没关系 我们说， 我们刷新，那就是
现在改变了标题已经改变了所以我们 现在有模板继承然后
当然最后的 事情是真的 接触以及 使 我们 再次 做
基于HTML扩展然后阻止 内容，然后终于在 刚刚 块 那样的内容我就是这样
实际使用就在这里，但现在 这些页面中的每一页都是统一的
Django 这更有意义 我使用像导航栏这样的东西让我们
继续， 我只是要使用 h1 或h1标签只是为了表明这是一个
导航栏不要太过分 了 HTML在这里， 但这是一个导航栏
我的关于页面在我的联系 页面上 它在我的主页上就可以了
这绝对是一回事 跨越，这是如何继承
实际上有效，我会 说 你 知道你是否改变 它来阻止内容
主要的或类似 的 东西 ， 我 保存 这些 页面中的每 一个 会改变， 因为我不是
实际渲染 或我没有 替换 正确的块以及那些中的每一个
相反，我 没有 替换 任何内容 他们只是没有做 任何事情 ， 这 是
真的很酷，实际上让 事情 成为 现实 不少方便我们在 长期运行 ，但
这可能是一个有点棘手得到 你的头转过来
这实际工作所以我 也 做 建议您 暂停 视频或
现在停止并将其更改为另一个
内容区域和几个块 在那里看看所有这些是如何工作的
确保他们 你有一个更好 理解这种继承是怎样的
因为它肯定是一 点点 比渲染HTML更棘手 页面只是一个空白的HTML页面，但它是
重要的是我们仍然会做更多的事情 在Django模板上，但这是为了
现在
所以继承允许我们做的是 除去我们需要的冗余代码
很多地方 我们要 谈的 是什么 在 这一个是关于包括
模板标签， 所以我们可以做更多 同样 只是一 点点
不同的水平， 所以我的意思 包括有时你会有一个导航
您可能会使用栏或导航栏 想要在多个 地方这样做
允许它以多个显示 放置或允许我编辑它
导航栏无需 进入基地 每次我真的可以进入我的
模板，让我们只为他们做一个 新的一个称为导航栏点HTML和
这本身只是 导航栏 它不会发生任何其他事情
真的 要做模板 继承而不是我们要做的事
是有某种形式的导航栏右侧 使 我刚刚写 了一个导航，然后做了一个ul和
在这里，你知道做了一些导航栏 相关的事情我不会成真
导航栏真的，但让我们继续 前进 只说我们去的品牌， 所以我们有
一个简单的导航栏，只有品牌和 让我们说联系，关于 好吧，所以我们
保存并 返回 基本HTML 让我们摆脱这个这 是一个导航栏 好的， 所以我们只想去
提前和使用包括所以再次 卷曲 括号％include然后是路径或 那个实际的HTML文档
生活，我们只会说导航栏 点你知道的HTML， 所以 非常 非常 类似的不太相似它 是相同的
以我们 创建 权利 ，使 我们的意见 我们放在这里的任何东西都是非常的
我们放在这里的东西是这样的 我们稍后会进入那个 但是 这个 是 我们 如何 能够包括外部
模板到我们的任何模板，所以我们 保存并刷新，我们就 这样做
我们现在有一个导航栏被授予它不是 非常好， 但它是 一个导航栏
将会出现在我们所有的 页面上 这一点，你这样做的原因是 ，一旦你
项目变得复杂 一次 你有一个很大的老项目
想要使用这包括因为 那么如果我需要做一些改变
到 我的导航栏我可以跳进去 导航栏HTML很酷非常有用的 ，以便
现在我们想做的事实上就是说话 关于上下文，所以我怎么样
使用超出该请求用户的东西 我们之前已经见过这样我想 实际上添加了一些新的数据
来自其他 地方，所以我并不难 每次编码它 ， 而是它的
来自其他 地方
所以主要目的是使用模板和 Django 并不是为了继承
包括并授予它那些 事情很好， 你可以做一个漂亮的
很酷的网站，但我们真正 想要的是 从我们要从数据 的 后端数据
正在渲染的数据库 在我们想要 的 其中一个 模板中
看到我们有点戏弄它了 用户a的那个请求一点点
几个视频以前，但我想 实际上进一步说再说
你知道也许我想改变 页面的标题或我想要的
在有不同的内容基于断 一个不同的用户现在我们将要工作
实现这一但最初的东西 ， 我们必须了解所谓的
模板上下文，这就是我们所做的 要盖上这个，让我们走吧
提前并跳进 我们的观点和我 我们把这本字典留给了我们
对，所以这是一本空字典 现在，那就是我们能做到的
将上下文传递给我们的模板因为 Django做的是需要我们的 模板和模板上下文
匹配这些东西一起 呈现它 然后罪恶银行只是原始的HTML到
浏览器将看到这 意味着 什么 第二个，但 基本上是什么
事件 它需要一些模板
背景玛莎把那些东西放在一起 把它变成普通的 HTML，然后是
用户看到好了，所以我是什么意思 上下文究竟是什么语境
任何数据类型， 所以 让我们进入我们的 让我们说我们的观点是正确的，所以让我们
使字典只是一个标准的旧 Python字典并说出我的下划线
上下文等于字典好 所以，如果我抓住 我的背景，并把它 进而替换我们得到的那个空的
同样的东西， 现在 好了怎么回事 所以我说，我想 改变我
标题让我们 继续前进 ，只是有 一些任意的关键意思我正在弥补
这把钥匙，我们会说我的文字，我们会 说这是关于我或 我们 无论如何
所以这就是 我的背景 所有这一切 东西是任意的，我把它全部搞定了 你可能猜到了
但我们这里有一个键/值对 它只是一个标准的字典 ，一
key作为一个标准的字符串 在Python中然后我可以使用 字符串作为 价值或我可以 使用别的东西
喜欢数字或者更确切地说 更像我的号码 和 我们的东西
可以做到一两三， 这样我就可以 使用字符串 我可以使用数字我 可以使用
我会告诉 你的 其他词典 自己玩数据类型
因为那不是真的 重要的是我们如何重要
实际上把它带入了 上下文 这是关于页面所以，因为我有这个
上下文我在这里有这本词典 我为 自己 创建了一个自定义的 希望 把这种成模板
并看看那个 模板，所以我 有两个不同的关键项目在这里 如此
让我们来看看关于点HTML和 我们也要确保我们的项目是开放的
在那个页面上，所以我们会去 在这里和那里，我们去，所以我们在
那个正在渲染它的项目 模板以及我如何实际渲染出来 我传入的任何类型的项目
我 通常会把 我 带 进来 知道类似P标签的东西，所以一般
这里有HTML ，然后是我的上下文 想要使用，所以我们使用这些卷曲
括号两次所以花括号卷曲 支架或支架空间放好
东西在中间那里， 然后 然后是大括号花括号
我们做得还可以，那就是我 需要走到中间， 所以这是
称为上下文变量， 所以a 上下文变量意味着什么变量
我们是否进入了我们的背景和什么 我们可以使用我们已经看过的请求吗
用户， 这样 的东西，是已经 建在那里但我怎么做
实际上访问我通过的东西 通过好希望你有一些
关于这个的直觉，如果不是没关系 你会发展它我们有这两个
变量， 所以我们的钥匙成为 内部的模板变量
我们现在通过的任何给定的上下文 我所做的就像我说的嘿django
我们有关于点HTML页面和 然后我们有这个 我想要的 背景
将这些东西混合在一起 产生一些 我不希望的 东西
所以在那个背景下我们回到那个HTML 可以说我的下划线文本和那
那就应该呈现出这个关键 而这个价值是正确的， 所以它采取了 这个
关键是我们用过的东西，它会 渲染 出这个值， 我们可以 做到这一点
与 我的号码相同的东西 如此重新进入 我们可以说我的文字是下划线或
相当逗号的花括号卷曲 支架或支架打开关闭
崇高的文字为我们做了，但你 知道 如果您使用的是其他文本编辑器
你想确保 它完成了 这样他们就会说出我的 号码
说我们回到我们的弓页 刷新哦哦 ，我们实际上并不是
得到任何东西为什么 嗯，实际上 我 可能
没有保存我的视图上下文所以我 需要确保我一直在储蓄
一切都正确，所以我的意思是，如果它是空的 这意味着它没有通过它
意味着上下文是空的 意味着这些东西实际上并非如此
设置它是一个非常酷的错误 马上蝙蝠它不是一个真正的
错误它实际上是一个功能， 但如果我们 现在我们在这里刷新数据
通过使 在其 最简单的到来 表单是模板上下文，它又是
只是 我们做了 一个 非常快的事情 模板上下文的字典
我们想通过，然后我们通过 现在你可能会做的事情之一
想知道就像我的名单和如何说 实际上我是否正在 使用列表
所以如果我说1 2 3 你知道的话 它实际上没有的数字或字符串
我怎么看这个呢 列出正确，所以我进来，我说
我的清单我 很好地 呈现了这个清单 这很好， 除了那 不是我
想要看到它我想 在也许看到它 或许正确的 HTML列表项 那会 更好一些
这变得有点复杂了 这让我们讨论了什么
接下来
我们把它从我们通过的地方解除了 我们想要的列表的模板上下文
看到实际上是我们的 想要真正 看看 那份清单
是一个不同的格式，所以 我希望看到的格式是类似的
这样，让我们 在 我们的 内心做一个ul 模板并执行列表项，使项目 1
然后关闭该列表项列表 项目项目2
好的，我们 将 如何 做到这一点 有有一 对夫妇的方式， 你
可以做到但主要的方式让我 说一个 几个方法 ，你可以做到这一点的一个
错误的方式让我们走错路 首先是错误的方式 进来
这里为您的看法，并呈现出 列表作为不同的变量，所以在其他
在某些列表中对于项目说的话 所以我们就做另外一个列表这里
然后做我的背景和类似的事情 这个项目 等于 项目哼了这个 不是最伟大的，因为它是唯一的
会以此结束，但基本上是你 不想这样做你 不想这样做
走这条路线，但我们 已经 开始 走向我们想要做的事情 模板，这 是我们 想要创建一个
因为模板中的循环所以 模板本身可以有这种
我们实际上可以进入一个流程 我们可以在任何模板上运行循环
给定上下文对象 或常量上下文 变量，所以我们会去
提前做大括号或括号％ 4，然后 你知道 一些任意
变量名我会继续说我的 我的列表中的子项目， 然后卷曲
它是括号和模板 与Python不同， 它更接近于如何
像HTML一样，如果你打开一个 for循环你必须关闭一个for循环
我们走了，我们有办法实际 循环通过这些东西然后我所有
要做的就是在外面放一个ul 它然后一个李 在它的内部然后我们可以
只需再使用 那些花括号 两个 括号并做我的子项目，我们保存
这实际上是 做 什么的 遍历 我的 每个项目
列表假设那里有东西 列表，所以如果我现在刷新，我们看到
这两件新事物对 我们来说是 正确的 实际上看到这些 被评价的东西
他们出现在这里和那里 是循环的其他附加 功能
在这里，其中一个像循环一样 点计数器，这让我们看到了
我们目前的迭代次数 所以，如果我刷新， 我看到它 是 1 2 3
权 在我看来理所当然，如果我是 更改顺序或更改值
甚至你知道ABC字符串 那类的东西所有 的意志
通过它非常 好 我的意思是 它 允许我们做 各种各样 的事情 我们的模板内部 基于
我们现在看到的是什么 别误会我的意思
我们仍然没有看到来自的数据 像我们仍然很难编码的数据库 这些东西就像我想要工作一样
我可以在哪里看到数据 从数据库， 但仍然有一个 我想要做的更多事情
我们到达之前的模板和视图
所以现在我们要谈的 是 模板中的条件是
如果其他我们的模板内声明 你现在大体上想做什么
确保您的逻辑已经处理完毕 在你看来，一般规则的儿子
我将进一步深入了解这一点 后来当我们变得 更先进但是
基本上如果你要做一个 很多if-else陈述你要去 想在视图中做那些改变
您正在 渲染的 上下文 您不想要模板的模板
做太多的 工作，但也有 您 需要模板的情况
这样做，我会告诉你一个 非常基本的例子 ，但我也是
给人 一种给你 的 一 点点 使用变量命名警告
模板还可以，所以第一件事 就是 当你在这里和你 有你的 背景
呈现出来 ，让我们说 ，例如 你有一个这样的清单我们会
想要对我们的方式非常挑剔 渲染，我们对环的内侧，
换句话说，如果我改变了 让我们说 例如我的文字是ABC和
然后我的内心我在这里有ABC 然后我改变了我的变量
循环为ABC，事情变得有点儿 毛茸茸的，他们可能会很好
所以它很好，但是当我 实际上想做一个像这样的条件
如果ABC等于 3 1 2，你知道是否 那是我可能想要的情况
重新思考我是如何命名我的 变量，因为它们是我的意思
这已经像我一样看起来很棘手 已经不清楚这是怎么回事所以
让我们把它作为我的文本和我的文本 这样的文字很令人沮丧
什么时候发生，当你 没有抓住它 但这是你将获得的东西
随着时间的推移 技能 我向你保证 只是 认识你如何 命名
变量，这在Python中也是如此 一般权利，所以有时 你可能
将变量命名为一个然后就是它 渲染是别的东西 它也
我的意思是函数和类是 真的 我已经看到它发生 了很多而且它是
发生在我身上，所以我只是想要 引起你的注意，因为
我们 现在 正在 做的 事情 好的，所以回到 这个关于页面
我有这种情况，所以我 实际创建了一个，它确实
很简单， 我们只是调用一个if语句 如果某些变量或某些东西的百分比
那将是 另一个 可以 比较 如果你有什么东西，或者更简单
知道真实的，所以你也可以通过 在 这里的上下文变量又回到 了我的
查看 我只能说这是真实的， 只是把它设置为 正确，所以我可以
我仍然可以使用这些条件 他们允许你做的 只是 评估这个陈述是否合适
是的，你可以使用像 等于等于就像我在这里 和
然后在里面的那个街区里面 你可以 特别 渲染一些东西
所以让我们继续前进 ，渲染 在这里的东西， 你知道我是什么
要投入另一个小概念 我们稍后会看看的 事情
让我们 只说增加 22所以我 有一个直箭也称为
直线也 称为管 和 然后我们只输入广告：
然后我们 想要添加任何数字 所以我们这样做， 然后 我们刷新
在这里，我已经完成了所有的东西 注意第三次迭代
现在两次这是因为我有我的if 声明，但后来我也有 默认或我以前拥有的 东西
我们真正想做的不是 像我们一样有默认值 在这里说一个else子句
像这样引入那个else 子句 这种方式可以 迭代 列表
如果ABC等于三个 两个然后就会把它渲染 出来
并添加 二十二，所以我们保存 那我们刷新， 现在它仍然存在 只有那四个 项目 除外
条件现在已经满足并且允许 我们现在做一些补充我们也可以 如果我有另一个条件
来到 这里想要另一个 条件你可能想说
像其他东西，但在Django 它 Elif就是这样， 那就是我们
会做另一种情况，所以我们可以 检查其他条件现在让我们
只是说如果它等于 ABC或 单弦 所以，如果它等于 ABC我们能保持这种
如果我们想要或在那里的循环计数器 我们可以说这不是 网络ABC
在那里，我们做了很好的小方法 条件，你可能是
想知道这到底是什么 这是怎么回事就在这里 ， 实际上是
称为内置模板标签过滤器 这些 项目中的每一项 都是
被称为 是它是一个上下文变量 但它本身就是模板标签 渲染出具体的东西
到Django模板和 模板引擎，所有这一切都是
它在 一个 非常基本的功能 上下文我们会玩弄 它
多 一点点 在未来 一
到现在为止我们已经使用了几个内置的 Jango 提供的模板标签
我们使用了扩展，这是一个模板 坦克我们使用了我们用过的块
就像我们使用的for循环一样， 但是这个 是不是 我们实际上有很多
如果你看一下文档就更多了 本身有一整套物品 您将看到 内置模板
标记自己你知道我们刚刚谈过 关于块，但有一个 评论
所以，如果你想写笔记，你 可以 将评论写为模板标签即可
循环通过我们的东西 实际上没有覆盖，但确实如此
可能会玩的 东西 或者如果你想特别看到它 请在 评论中 告诉 我们
实际上并没有那么多使用周期 我将解释为什么 只是一个
那一刻，但我们已经看到 了循环，我们已经 看到包括我们已经看到延伸正确
我们这里有各种各样的 物品 允许我们制作模板
更有价值 ，然后是另一个 事情， 我有点 逗，我们会
说说 现在是这样的过滤器 这是一个过滤器， 只需要 它
无论这个价值 是什么，或者是什么 模板上下文变量值是这样的
任何这些东西都可以使用过滤器 如果你看到两个，基本上是一个经验法则
大括号， 这是一个非常 好的 机会 你 只能使用一根烟斗 然后有一些过滤器，是的
有一种方法可以自定义过滤器 好吧，如果你有 一个，如果你有需要
看到 那个请告诉我 注释，这里是内置过滤器
参考权所以我们有 各种各样的 不同的值注意您可以添加
数字甚至 代表的字符串 一个数字你 可以添加变量，如果你
传递给不同的上下文变量 你想把它们组合在一起
你能做到这一点，我们可以做的东西 一样 首先是斜线或盖帽 让我们说，这 可能是一个非常好的
例如， 在这里我们改变了我的文字 到是标题 右侧，然后回
我们的实际模板我们会改变这个 获得冠军，让我们走吧
将它 带入 我们提出 的h3标签中 标题在这里然后我们会 使用它
首先过滤瓶盖 然后关闭它 h3和所有这一切
它向我们保证第一个文本 如果我说ABC，项目是大写的
这更新了，我们走得很漂亮 幸运的是，文档给出了
我们很多使用这一权利 的 例子 所以我什么时候才能真正使用价值
偏 右，所以如果我想 使用 中心我可以诚实地 说我不 认为
我曾经用这个模板标签 UM 这就是文档存在的原因 但是让我们继续使用 Center和
尝试一下如果我刷新 oops我们有两个 对不起，额外的花括号
关于那个 中心它实际上不呈现
对我们来说，因为模板如何 工作，但你知道所以我的意思是HTML
我认为没有额外的间距 什么都不做， 所以没有做
什么， 但你可以做的就是你可以 绝对一次使用两件事，所以我
可以说阵营第一，所以我可以过滤 那先是像先生一样营地但是那时
也许我们只使用大写 鞋面如此斜线上部和所有那些
要做的就是把第一个字母大写 然后是大写 所有其他的 好的，我们可以 堆叠那些过滤器
我现在 在一起很好 不确定你什么时候 会 成为什么样的人
像 这样 堆叠这些 但是它 是可能的
另一件事是可能的 当你通过时，所谓的安全
在HTML中作为上下文变量让我们说 我的HTML 和我们说过你好世界
默认情况下，这是正常的 我想在那里 渲染一些 HTML
当 它被渲染 时 它被 渲染为正义 纯文本， 所以实际上并没有
呈现HTML文档 没事 ，所以我们 实际上可以在这里使用过滤器调用
安全， 所以我们可以保存那个你 去它实际上 呈现 HTML和
还有很多像截断的东西 字符右边或标题看嘿 这很酷， 所以 我们这样做
我们 先 获得上限 然后获得冠军 所以标题和标题是标题
他们 是整个头衔 变量右，所以这 是变量
无论 那是变量 和 一旦你将 那些管道 放在 那里 变成过滤器名称和它
可能很酷，所以我们可以做到这一点 使用日期的东西 有点
比我们在你身边的地方更先进 可以改变你可以改变 的 时间
您可以删除HTML标记的时间格式 对，所以我们在这里看到我们 刚刚脱 衣服
在 它 之前的 标签 如果我做了剥离 是安全的 标签保存
刷新了嘿，你去了没有 不再显示出HTML是什么 ，所以
这些是每个种类的反向 的 另一个 实际上是另一个
一个刚刚摆脱它 的 这些 都是非常 很酷的模板内部很有用
他们自己 slugga phi嘿，这是另一个真的 冷却一个 五块塞什么slug
申请做得好我们在这里刷新它 用h1标签打开你好世界
还有它的slu or版本 像URL 安全版本， 但我也可以
做剥离标签，然后嗨和 嘿你知道 它删除了所有 这些HTML标签 并将其固化
同一时间，所以你会想去 每当你的文件
想想，我 需要做XY或Z. 因为他们非常具体
通常你正在使用的是正确的 所以如果你有 用户生成的内容
并且你 希望他们的标题显示为 标题然后你可能会那样做 但是 老实说， 你可能会像现在这样离开它
可能不会强制执行这些事情 这真的很酷
关于这些模板标签，你得到一个 您想要使用时选择
他们我实际上并不认为 你会这样 最后老实说使用它们
因为正如我们在这里看到的那样，我正在向你展示 它们存在但通常在你的时候存在
有这样的价值你会做到 这一点 视图或者如果你有 类似 的东西 这也可以 在视图 和
事实上，安全本身应该完成 带有标记 安全的东西的视图
但这实际上不是我们的 事 我会稍微介绍一下这一点
更先进， 但它是值得的 注意到 这 就是 Django的
现在内置模板标签和过滤器 我们已经准备好开始渲染了
来自我们后端的内容所以数据 实际上已 被存储在我们的
数据库
现在是时候实际呈现的数据 从我们的数据库，但在我们这样做之前
我们要 在 shell 只是玩 一点点， 所以我们 可以理解如何
实际上 访问第一个数据 我们把它渲染 出去 之前的地方
访问它让我们继续前进 我们的终端 和我的根就是 我
我 管理类型的初级项目 让我的服务器 运行，但你 没有
一定 要 做到这一点，让我们去 前进，跳跃 成 Python 由 UI
shell 我 也 假设 你有 这个确切的型号我们的产品型号你
你可以拥有任何你想要的模型 确定你有一个型号我会去
提前并 从产品顶部导入 模型导入产品没关系
所以，如果你不熟悉这些 进口工作你可能想回去一个
点点 ，但 基本上我们要 从 该应用程序看该模型
模块模型模块是一个满口的 然后我们正在进口产品和
获得我们可以做的任何单品 得到的对象的产品然后
我们想使用像参数一样的身份证费用 这里ID等于1 我点击进入和我
现在回到那个对象我 可以将此设置为变量本身
让我们说哦，J等于那个和 那么在这里我可以做点什么
dir obj看到了所有的 不同 我可以 在这个方面实际上遇到的事情 所以还有其他直观的
如何做到这一点，但这可能是 如果你熟悉的话，这是一种自然的方式
Python您只需使用dir即可查看所有内容 那 你可能对 方法
这里或您可能拥有的属性 在这里，其中一个 是ID，其中一个是
价格标题总结右所以很多 这是唯一的我的模型和
当然，数据也来自 这里有很多内置的 东西
Django在模特中名列前茅 模型如此逼真，你可能会做
OBJ 点标题 或类似的 规定 右边所以obj点标题 是唯一的
到这个模型，它允许我 抓住 我保存的标题
数据库所以现在我们有点 理解了 关于 如何 实际抢夺的更多信息 一些数据希望你好奇
我确实来自哪里 这get调用将解释说， 在
一点点，但让我们继续 前进 并退出 现在离开外壳 ，让我们走吧
提前并创建我们的第一个视图 我们呈现出这个实际数据 ，以便
无论这些数据是如此开放我的 再次查看产品应用内部的视图
我的意思是 我把它搬出去 的原因 如果您在此另一个的观点
已经沿着下面有做 一致，所以你想做
确保一切都与你的相关 产品在您的产品应用程序内
所以，如果你要渲染 一个视图 与应该的一种产品 有关 可能是你的产品 有 差距
是例外但 只是保持 考虑 到这 一点，因此所有我要做的是在这里 说死，我会打电话给这个
产品详细信息视图无需进入 太多的解释只是留在 了
我喜欢的命名约定 产品下划线详细信息视图我们是 将展示一种产品，这就是我们所做的
称之为详细视图，我会去 提前并在此处提出请求
然后它返回渲染并且需要 请求一些模板名称 ，然后一些
因此，当然我们必须创造 我们的模板本身让我们继续吧
并编写产品 斜杠详细信息HTML 是的，所以如果你的话我现在加了一个斜线 跟着我， 你还没有看到
但是我们 要谈谈这个问题 只是 一会儿 ， 接下来 的 事情 就是
在这里的实际情况，所以我会 继续前进 ，从 点模型 做 我
在这里进行相对导入，所以从蝙蝠 models导入产品类和这个 有时 人们会得到一 点点
咬下 首先他们可能会命名 函数就像 一个类，所以不要大写
功能使它们第二次降低 你可能会把类似产品的东西
在这里，这不是一个好主意， 只是 让 确保 它的简洁明了，这是什么 ，所以
我们正在研究产品 的细节 这就是为什么你要把它放在那里
产品视图就像在那里一样 我们做了我 得到的对象的产品
ID等于一，现在确实如此 很有 可能 这是一个错误
你和我会解释为什么我们会跳 进去 管理员让我们进入我们的管理员
我们进入实际拥有的产品 你可以在这里找到两种产品
有 更多或你可能 有零 但我的模型实际上有一些项目
在这里，如果我点击第一个我 看到这里有一个权数最多的是 实际上是我们也可以看到的ID
另一个产品是另一个ID 一 两，但如果我们看看我们的 模型
这里 没有ID 必须做的事情 与Django的 内置功能之一
它们是自动递增的 您可以在迁移中看到的ID
在初始文件中，我们看到有这个 自动填充 ID 以便自动填充
创建了我们，我们没有 做 什么
Jango的另一场胜利好吧，我该怎么办 实际上在这里创建上下文 这样的背景下 只是一个 空
默认情况下字典和什么上下文 我想把它放在这里我可以放
像标题的东西，再次是obj 标题我可以 把描述的东西 和obj点描述你可以
你可以填写剩下的 任何东西 你想在模特身上出现这个
上下文再次进入我的模板 但是 我实际上必须创建该模板
所以没有达到先进 水平 我们可以找到或加载我们的东西 我要谈的模板
字面意思是下一个我们要去的 在此模板中创建一个新文件夹
这里的文件夹称为产品和内部 那个文件夹我们要创建一个新文件
在HTML上详细说明了你的全部 必须这样做，如果你想有
您模板中的目录 只需在那里制作一个目录并制作
确定你添加 斜杠使它相同 无论如何 都 以这种方式削减
你在它上面的系统应该仍然有效 好的，所以我们已经详细介绍了HTML
我们希望延伸细节 当然这是基于HTML的扩展
从以前的视频继续这样做 确定你看那些， 我们阻止
内容我们只是在做块 ，我们 有 走
这是我们创造的标准 模板让我们继续，确保我们 将我们的视图导入我们的URL
所以在我们的网址中，我们将继续前进 导入产品 视图，以便它们来自 产品查看导入产品详细信息
查看观众 观看影片 的名字 当然，最后我 才去
继续前进，在这里开辟新的道路 我们称之为产品而且它只需要
在产品详细视图 酷 我要继续做一个h1
在这里说项目 好吧让我们回去吧 进入我们的项目如果进入产品酷
你没有这个停止 去检查代码对github做所有 就像我 只是吹过很多东西
东西 ，因为我们已经 做到了这一点 但我们还没有 看到如何做到
实际上渲染出一些对象数据 像一些数据库对象的这个数据
情况下， 我其实已经做到了，所以你 可能已经直觉地 知道我可以
在这里做大括号标题 那么我可以让你 知道像P 这样的 东西
标签描述在这里 ，等等，好的 保存 它在这里刷新 我们有一个新的
产品貌似 我没有 描述所以我不用担心
关于这一点，但 当然这是一个很好的 有机会使用我们可以的条件
说如果描述然后我们就会 否则 说明描述
我们会说很快或 很可能 说出类似描述的内容
很快，他们又真的完美了 如果描述不是没有 我的意思是你
可以做各种类似的条件 这里也适用于Python
这些是Python条件或抱歉 在这种情况下 ，它不像那样
它实际上并不等于 没有，所以 我们 我想说和描述 不是
等于一个空字符串，它 很 也可能是 然后
更酷的是什么呢 条件是伟大的
关于观看 这些教程和 现在建立一些真正的好东西
我们已经有了 ，我们实际上已经呈现 出我们的模板， 我们已经渲染出来了
对象，但有一件事是 这种方法真的很不利 如果我们回顾一下我的看法
要做的是我必须映射我的对象 语境正确，所以每一件事都在
我的对象意味着我的每一个领域 必须将它映射到上下文
本身 没关系， 但它增加了额外的 如果我改变了 我的 意思，这就意味着它 我希望在我的模型中有新的数据
HTML 我也必须进入我的观点 这有点低效， 所以我们
想要做的 ，而不是 大家的 ，而不是 这只是摆脱它或让我们只是
把它 评论 出来我会留在那里 供我们参考，所以我们这样做
内容和我们说对象是obj所以 现在上下文对象是对象权限
所以上下文变量是对象所以 我们可以在这里详细说明
只做对象 ID标题对象 描述对象的描述对象
我们的描述是的，我会 保证 我不会再 这样重复
对象点价格，所以现在我可以 实际上每当我 改变 我的模板
希望并没有真正过分担心 这个细节视图哦，我们得到了一个
发生了对象 的错误 标题发出的名称是标题所以
对象应该在那里 应该有 渲染， 但 也许我们没有保存我们的
看来我们不太酷， 所以这 就是现在 从中抽出所有东西
数据库真的 很酷，当然你 可以玩变化的事情做所有
那
你可能还记得我说的 时候 当你 这样做时，创建一个django应用程序 我想保留那个应用程序
在该应用程序或该组件内部 你执行此操作时的目录
让事情变得美好而简单， 这样你 就可以 在其他项目中使用该应用程序 通常 我的意思是你做 的目标
真的很好的博客应用程序，例如 你可以一遍又一遍地重复使用它
甚至将其作为 第三方发布 包，其他人可以直接使用
那么如果你最终 这样做的 话 这意味着你将要做的事情
其他配置 现在这给了我们一个非常 好的
机会 谈谈 模板 那个背景所以我故意离开了这个
因为我想 告诉你如何 渲染出 有关该应用的 一些 数据 首先，然后移动模板
现在 我们可以 在 我们的应用程序中使用 把一个新文件夹放在这里叫
模板所以在子应用程序内部你 可以有 一个新的 文件夹， 这里 被称为
模板，你可以在里面做事 那我们可以做一个新的另一个新
文件夹和那个新 文件夹 将是我们的应用程序的名称， 所以只
就像在这个模板中我们做了产品 细节我们会在这里做同样的事情
事实上， 我们会 完全命名 像我们的应用程序，在我的情况下，我做了
产品第一， 所以我要把它命名为 两个 产品然后我们会称之为
产品下划线细节点HTML所以 我们改变了一些 关于 我们的 事情
模板我将复制并 粘贴它 整个模板本身带来 了 因为我们会看到一些不同 之处
我要在应用程序中调用这个 所有这一切都带有那个标题的模板
是为了说明差异 了解Django如何查找
模板本身所以我们保存这个和 在我们看来我要 改变这
产品细节不是确切的事情 因为我想告诉你，你的东西
可以跳到前面去 完全一样 但如果我，我想告诉你一些事情 除了我 将要 发生的事情
渲染了这个页面，我得到了一个 错误说 模板不存在 所以 这实际上非常重要
了解因为很多次你 把模板放在错误的地方或你
有一个 拼写错误或类似的东西
这让 我看到这是怎么回事 我们有这个脾气 模板
装载机正在向我展示它是如何实际的 首先加载我的模板
它寻找的是文件系统 装载机这里这个权利信不信 由 你
来自我们的一个设置，所以如果我们 进入主要 配置设置
当我们真正 建立了 这个 模板ders 那就是 那个
如果我真的 写了 ，那就是 这样 走出那条会出现的道路 所以，如果你在 错误的系统上， 你
会在这里看到错误的道路 因此，我们让它这样，接下来的 事情
是你会看到一些其他地方 它看起来它 看起来在 Django 网站
包contrib管理员模板 产品详细介绍了它的内部
它内建到 Django的管理应用 然后它最终 走下坡路
到实际的应用程序加载器所以它看起来 在我们自己的 应用程序内部的产品 当然模板产品细节
这不是实际名称的名称 我们将其更改为产品下划线
细节， 所以如果我保存 并刷新 一切看起来都很好，但让我们保持它
作为产品细节只是 片刻和 只是揭示这实际上有多酷
所以我们真的要看看 Django将自己封装在我们的内部 项目现在请记住我们这样做
不想在这里改变什么 我们只是在寻找它
插图目的只是为了我们进入 Lib Python 3.6 站点包 django 了
只是单个django没有别的 然后，如果我们追溯到我的意思
发生了什么我们看到contrib admin 模板，所以贡献管理模板和
这里有其他模板实际让我们 看看这个管理应用程序本身，这 是
其实不是一大堆不同的 比 我们拥有的东西肯定更多
那里的东西比我们拥有的东西更好 我们还在做很多基本的事情
但我的意思是 在某些时候 你可能不会 有过
有了这么 多的东西， 所以 这是 一个应用程序 不是 重点
这里的重点是它完全相同 这是 与 Django 相同的 应用程序 管理员或内置应用程序
我们正在做的事情 非常酷 你实际上可以看到模板 和
你可以在这里编辑它们， 但你不能 需要 其实你会做什么，如果是
你想覆盖 你的任何一个 内置模板或任何应用程序
模板，如果你想覆盖 你会那样的
把它们放在你的 文件 系统中 会把它们准确地放在这里
同样的道路让我们继续前进并改变 回归到实际的观点
一，所以它的产品 写出产品细节 这就是我们想要的最终结果 所以我们看到它在app模板中说
现在如果我想 重写此 模板或任何模板
这些应用程序我会进入我的 模板文件夹即主目录
我创建了，我将重命名或添加 我之前的路径一样， 所以我要去
这个重命名为产品细节 好吗 所以现在它完全改变了
这里刷新和我们走那么它的 实际上向 我 展示 了og模板
对，这就是你的方式 这样做， 但要 记住 ，当时
你正在使用自己的独奏应用程序或 你有团队机会真的很棒
你要把 它放在里面 这个本身所以我真的会
完全删除这个文件夹我没有 实际上你想让你 感到困惑
这就是为什么它已经消失但我只是 想说明如何的目的
所有这一切都适用于你的 模板以及如何加载它们 我认为 看到它至关重要
在地图内部与任何其他形式 因为真的一切关于这
此时的产品应用程序就在里面 这只有 URL 的一个 例外 实际上把它带入Django
项目本身， 但这不是任何 与我们的任何应用程序不同，包括
如果我有内置的管理员应用程序 摆脱这个应用程序不再
对Jango来说，我的意思是它仍然有效 但我们已无法访问它了
主要项目，这意味着它是一个 非常可重复使用的应用程序，这是主题
在这里，我们希望保持这种状态
你看我们真的 想要 让我们的用户保存数据
数据库，他们真的不会 使用 管理员或Python shell来做到这一点
所以这一块我们要 开断 下 使用Django模型的基础知识 那形式是什么意思让我们
实际上现在看看 里面 的任何 给定的应用程序我会继续做 一个 新的文件在这里，并调用它形成 做 馅饼
请记住， 这适用 于任何人 模型不 只是我们用这样一个
我们要继续从Django做起 导入表格，他们将从点做
模型， 我们将导入我们的模型 在我的情况下， 它的产品是正确的
那我就要 在这里上新课 我打算叫这类产品 模型形式或真的我会称之为
产品形式或产品创建形式 这些都是几个不同的 名字 ，你
最终可能会 使用，所以我们就离开 在 其产品形态，我们称之为
形成点模型形式和我们所有 这里做的是类元模型 等价 产品，然后像这样的领域
我 想要的 实际模型字段 在这里 ，你知道哪些
这些我想要的只是你的头衔 和描述和价格没关系所以标题
然后描述然后价格还可以 所以我们现在拥有我所拥有的模型形式 要做的就是在视图中渲染出来
让我们 进入一个视图，让我们导入 这是从点形式导入产品
形式，我要做 一个新的观点 专门为此，我只是复制
这个细节视图真的很快 ，我们会 打电话给这个产品创建视图我不会
担心对象本身这么 好吗 我想要的背景是我会的
只是说形式等于产品形式和 然后我们将用它初始化它
请求dot post 或none 如果你不明白，这是一个担心
这是怎么回事就 在几个 视频 或 接下来的几部影片，我们是 要去进入
在这里更深入，所以只是承担 和我在一起
所以， 如果表格 点有效，则表示另一个 我们最终会做的事情 只是形式不安全好，我会去
提前把这个表格添加到我的 上下文，我要做一个新的
叫做产品创建一个 CH tml这样 意味着我需要制作该模板
本身，现在你应该绝对 知道如何做到这一切正确 和
简单的方法就是复制 当然我们的其他模板，然后在
在这里我需要 创建一个表单元素 或 一个表单HTML 元素，我也要去
做输入类型等于提交和 我们会说价值等于保存不
关闭电源 ，然后 是 内部 会 只做表格点作为P所以这是一个
转换形式的内置方法 我们将上下文传递 给实际
用段落呈现的 HTML 表单 标签， 我们将看看该代码
只是片刻，但现在我们已经有了 这个伟大的观点让我们真正实现 它
进入我们的网址， 以便导入URL 这个，我会继续做 它的新路径
我只是称它为创造而且它会 是产品创建视图好吗
所以再次让我们确保一切 全部保存全部 表格
模板所有这些东西让我们 继续前进 并期待这个创造，在这里我们 我们已经 在这里展示了我们的表格
与我们指定的实际字段 所以我只会说新产品
真棒和一些价格不对 真的很重要我点击保存，我得到了一些
错误，所以我有这个 东西 在这里， 这不是 一个真正的错误 只是我没有实际指定
我在表单上使用的 方法 所以回到我的模板，我们将继续
并说form方法 等于post和 我们还要加入这个 CSRF
代币 好吧，这些东西我们 绝对会
讨论什么时候我们打破这个 并且去 从最低限度我 只是想表现出来 你如何先做到这一点 希望 能够
激起你的兴趣，学习更多东西 这个没关系 的地步 ，所以 我
刷新在这里让我们摆脱 一切 在URL中的东西，我只会做一个
新产品再次和描述 这很重要 价格12.99美元好吧所以我没有这个
null 约束失败了 所以我 这里有一个错误 ，那是因为如果
我们看看我们的模型 让 我们 一起来看看 我们有这个功能，这是必需的 这不是空白的 地方
错误发生此错误全部发生 时间这是我的原因之一
其实离开它有那么实际 我现在要克服这个问题
do只是添加默认值true或 a 默认为false那个部分
没关系，但我们做了 一些改变 对我们的模型，我们 做 什么 做 Python Michelle py让迁移成为 我们想要的
确保我们是我们的根 项目我们是python 管理员py是make
py的迁移和python manish 迁移好吧，让我们再试一次 ，并
我们会说新产品或新课程 什么事实上 并不 像我一样重要 说了一百万次我继续 保存
这一点 ，我不能告诉，如果实际 任何改变，让我们进入我们的
管理员让我们只是登录进入 我们的产品， 你知道什么
看起来我有更多的产品， 所以我 有一个新的课程，然后是新的
当然这里我实际上节省了一些 不同的数据项目，所以一种方式
解决这个问题是明确的 什么在那里它真的很简单我们
回到我们的观点和我们 像 我们那样放弃 它 ，所以我们愿意
只需放弃表格即可 上下文将改变并 为我们 更新
让我们继续，我们 可以真正地礁 提交相同的数据， 我们得到 此错误
这是一个安全 问题 或不是 安全问题，但安全 功能
所以让我们继续吧 ，加入吧 另一个
而我们保存的一些价格清除了 对我们来说 ， 我们 的形式 进入后端
什么你 知道我们有我们的 产品在那里我很酷， 所以我们现在 有一个 模型论坛 所以在 接下来的 几个视频中
我们要做的就是休息 在深度下来更像是怎么 我真的从中构建一个HTML表单
划痕和理解数据 的 我们将在哪里开始然后我们会得到
越来越复杂到更好 了解表格的一般工作方式
然后更好地了解它们的工作原理 与Django， 因为这当然 不是 只有这样 ，才能做到 这一点，但 它是一个
相当简单的方法，即使它没有 感觉 就像 我承诺 的那样简单
这是一个相当 简单的方法
现在我们已经创建了这个产品 模型的形式和呈现出来的内
我们的产品创造了它的时间 退后一步 ， 从中 做
刮 在原始的HTML，然后 向上 移动 这是第一 件事情之一
我 要做的其实就是摆脱 Django相关的东西所以那两个
事情现在好了， 所以我们有 这里只有一个HTML输入， 那就是
保存它所以我想要的第一个输入 实际上摆 在这里是输入型
等于文本和名称 是我们想要打电话的标题
这个输入我给它 输入 本身就是一个名字，所以我 可以使用标题 I.
可以说我的头衔既不是其中之一 实际上是一个巨大的差异
我们会在一瞬间看到为什么我们 得到了 输入类型文本'名称标题，我们可以
还添加了 一个名为a的东西 占位符，我们可以 说你的 标题这只是给他们的一种
一些信息我们会看到它是什么 在短短的一分钟，还好接下来的事情 就是在
观点本身我会继续前进 对此进行评论 并创建一个品牌
新的只渲染空的 上下文和没有形式相关的数据没关系
我们确实对你知道的三个真正评价 备份了很多，重做这个观点没关系
所以我们看看这个，我们 看看 观点让我们继续看看 它在创造内部，我们有你的
如果我打字， 这里的标题带有保存按钮 ABC和点击保存 我得到这个 CSRF
验证失败好了 现在为什么会这样 事件 它 实际上与我们有关
这里的方法，所以如果 我改变那个方法 得到什么发生了，我刷新和说
ABC 点击保存看起来像是什么东西 发生了， 但你可能已经注意到了
是你改变了看到get方法的URL 什么是a的默认方法
如果我只是输入一个像这样的表格 这个
并渲染它并说了别的 它会改变 实际的URL
非常相似 ， 就像当你想要做的 在您的网站上搜索， 而不是
做 搜索， 你知道进入 我们的本质是什么
要做的就是保持这种 发布方式 好的，所以我们保存并刷新 尝试ABC
再次，我们禁止这个 现在再次 与安全有关
Django现在建立的措施了 原因很大一部分，这是
如果我们打字，那就叫做行动 我们把它设定为让我们说出来
不同的URL让我们像斜线搜索一样 让我们继续并带来这种方法 回来，我输入让我们做一个
刷新此处输入ABC点击保存 哇发生什么事情需要我去
不同的URL 以及不同的你 知道 我 也包括那些 数据
实际投入如此行动然后意味着 他们可以完全发送它
不同的URL 等什么，如果我这样做 同样的 喜欢谷歌的事情所以 wwq谷歌
冷静的搜索我实际上 会得到 摆脱那个尾随斜线，我
还打算在这里 将 名称 改为 提示，然后我会 说你的搜索
我们保存，我们在这里刷新 我们有你的搜索，我会做 django
CFE点击保存 嘿， 你 知道我到底是怎么回事
在 那里 进行 了Google搜索 科迪法国人真是太酷了
布鲁斯想出了很多 这就是 我真棒 喜欢看到那个没问题， 但还有更多
这里重要的是理解嘿 我刚创建 了自己的Google搜索表单
这 对于一个功能 非常好 ， 但是 另一部分就是这里没有
实际上 与 Django的 ，所以你 学了两件事情头号
行动会将表格发送给任何人 如果我们实际上你现在放在那里的URL 改变这个方法 就像 发布 一样
那， 现在搜索 Django CFE让我们在这里刷新
现在搜索那个命中保存，我们得到一个 请求方法帖子 是 405错误
现在不适合此网址 希望是 有道理的，如果它不我会
在一瞬间解释， 但它很漂亮 很酷我们实际上可以改变 行动
我们现在可以改变方法了 默认情况发生的是动作
如果您执行期间，请转到当前网址 在这里你可以看到它是一个空字符串
或周期无论哪种方式，它会去 什么这个URL非常好，然后
它将使用该post方法 再次我们要改回
是标题和你的头衔然后我们 保存并执行ABC 我点击保存 和
我再次得到那个禁止的电话 再次， 以便覆盖 我们所做的那个问题
CSRF令牌 好， 所以我们保存 它和我们 刷新这里确认表格
重新提交，我们可以说是现在让我们 再试一次，我们去吧 所以它实际上 消失了所以数据
似乎是 想通过现在什么 哎呀进去
现在git请求意味着 你去 到任何URL 所以当我去任何任何URL
在我的页面上喜欢联系任何东西 你从中获取信息
当你想在中保存信息时 后端我们使用类似的帖子
邮寄给你发布的人的一封信 这是非常相似的，我们只是
使用两种不同类型 的请求 现在这样做实际发生了什么
不像后面那么多不同 end 可以处理两种数据
我们在实际中可以看到同样的方式 看待自己， 所以我们的观点本身就有
内置两种方法， 如果我们这样做的话 打印请求点获取和打印请求
点帖 我们其实可以看到发生了什么事情 与
任意一个 如果我只是刷新页面 ，请使用get
在这里， 我看到我有这个查询 字典是空的，我能做什么 实际上就是说你知道冠军等于
做对了， 所以我 现在 有了 因为我改变了我的请求
改变了我 现在可以在这里看到的 URL 我有一些数据 通过
从那里所以这 是一个实际的 字典，我可以说得到点得到 或者你 知道抓住实际的物品钥匙
那里的价值对，那将打印出来 我放在这里的标题，如果我
说，是啊，这是标题这gonna 实际上打印出来的 对我来说 后端非常酷，所以是的，你可以
绝对保存这些数据我没有 建议使用 git 做到这 一点
用于保存数据的不安全方法 为什么有帖子的安全功能
这并不是 Jango 独有 的 当然不是任何网络 独有的
应用程序是 它 的 一般规则 拇指当你有帖子要
现在添加一些安全性的原因 如果我有这个头衔的话 在我的 网址然后是黑客或 其他人
可以只使用它变成一个链接 是这样的，那会
从根本上改变了我的头衔 它开始带来各种各样的
你可能有 这样的安全问题 而不是这样做，我们使用 请求
发布权利所以我 要摆脱这个 get调用的一部分，然后里面 的
我的表格我仍然在发布， 所以我可以 摆脱所有这一切，并做ABC命中保存
现在我所看到的就是所有这些 数据 通过 未来 非常酷，这意味着他们会
最后一部分是我实际上可以 进来，说标题等于
请求获得标题的帖子， 我 使用doget 为字典本身
抢什么在那里，那将 是我会用的标题
然后我实际上不会保存它 因为我 不想把所有的
信息，但如果我做产品 点 创建标题的对象等于我的
新标题对，所以我的新标题然后 我可以在那里拥有其他所有领域
然后去 实际保存 请求的帖子数据由表示
只是打印出这些数据本身 并摆脱这些请求方法
这里没关系， 所以它保存ABC 并保存和 在那里，我们得到了我们的头衔 现在打印出来让我们继续保存
再一次 ，再试 一次不是 刷新ABC我们点击提交和 我看到的所有内容 ABC是第一次我现在没有看到
为什么我没有看到任何一个 首先是 因为我们没有 任何帖子
数据默认情况下有很多 我还 需要深入了解的事情
谈到这一点，但我只是 告诉你你是如何写 一个原始的 Django中的 HTML表单然后就是
通常如何创建数据 从那以后你 就有一件事
可以做的就是如果请求 点方法 equals等于post然后你可以运行
通过并完成所有 这些和 那没关系，所以要求 的
无论方法是什么方法都会给出 你知道得到的 帖子还是其中的一些
其他HTML方法然后你可以去 提前并保存 它然后那样
你在那个页面刷新它不会说 没有人首先喜欢它而不是它
它只会渲染出 它所说的ABC 没有， 因为我复制 并粘贴它
但是，让我们进入很多只是进入 说明了这一点
我刷新了那个页面， 我得到了我的请求 在那里我做ABC它除了我的帖子
要求和实际的帖子数据很酷 如果根本不清楚 你可能想要的
更多地了解 HTML表单 亲自请让我 知道
评论但这确实是一个糟糕的 方法 保存数据真的很糟糕
因为我们没有验证 如果这是好的数据， 我们就不是
我们想要清理这些数据 确定我们这样做， 那是另一回事
我们需要讨论的主题， 我们会 这样做， 在未来 一
嗯所以我真的要去了 评论所有这些复制它和
其粘贴在 可能应该先复制它但是
你什么都知道 好的，所以我会继续前进
删除所有这些，因为我们 基本上 从零开始或好像我们一样
从 零开始还好，所以我有 我的 查看此处然后我想 打开
再次形成只是继续而忽略 这个现在但它并不坏
参考， 所以我会继续说 类原始产品形式，它接受
形成点形式， 因此它不是模型形式 只是标准的django形式所以
我们必须申报标准的Ginga表格 我们的输入， 所以在我 来说，我刚 去过 的
使用模型，但我可以走得更远 那我们使用 form char字段 和你
知道我们可以说描述，我们会 还做形式炭场，以及 再
我们会说十进制的价格和形式 因此这些应该看起来非常 相似
我们的模型 ，那是因为他们 是这样我们得到了十进制字段char
领域和我们实际上没有 文本字段，所以如果你尝试做文本
我不会 工作的 稍后讨论， 但 我们会这样做
char field 如果你想要老实说 你刚才做的一些参考
Django形式字段，它应该给 你在这里的字段类型
好吧所以形成所有的领域 各种领域类型都在这里，所以你
绝对可以使用 除你之外的 任何 一个 知道文本字段不存在 这些
所有都呈现出一个特定的外观 默认所以，如果我 抓住这个 表格带来它
回到 我的观点 和，或引入 我现在的新观点我已经回到了 原点
呈现出这种形式 使渲染 我们创建一个表单 实例
所以我们会说这是形成的形式 这种形式 的实例，你可能 熟悉Python以及如何创建
我们添加该表单的类中的实例 进入我们的背景 好的， 我们可以在这里说出我的表格了
然后在那里形成我们仍然存在 离开那个产品就是这样
在HTML中，我将要摆脱它 这就是你在这里形成一个点
这将它作为段落文本呈现出来 如果我们保存这个并看看那里
让我们刷新那个页面 检查元素，看看和
看到嘿，我们有我们的形式 我们已经 得到了我们的CSRF行动
中间件令牌， 我们的 安全令牌 这里有一些P标签，就像P一样
那些像HTML或没有 不是HTML而是Li 或者是 ul
类似的东西你去的地方 这样你就可以渲染 它作为UL 是
HTML 这样的HTML确实有意义 但是SP是一种将它渲染出来的方法 我有一个包含 一些数据 的表格， 所以我 可以
添加我喜欢的任何权利并点击 现在自然地保存刚刚发生的事情
我们是否已将数据提交至表格 在这里或者至少看起来像我们做的那样
但我们没有做任何事情 对，所以这个形式本身就是
渲染现在它实际上并没有 得到 任何这些数据，这 就是我们使用 的 原因
请求点贴在这里，所以如果我保存 就像现在一样，在这里刷新吧
我在这个页面刷新了一下 现在 它正在给我 这些验证
这些错误称为验证 错误这很棒，这 是建立的
它已经进入Django了 与HTML不同，为我验证的东西 HTML绝对不是，但它是
问我们验证的原因 错误甚至发生在 此
指向右边所以我们看到这个领域是 需要但Django已经如何
知道那个好它 与做什么我 初始化它所以我把它作为
请求发布，让我们做这个工作 一开始 会 用很长的路
如果请求点方法等于等于 发布
如此反复一种建立 在请求 对象本身正在传递，如果
该方法等于post那就是 将成为我的形式， 我将实际 使用
我的表格中的 数据 换句话说我会 传递请求发布数据 作为我
初始化我的表格所以我也必须 我 默认初始化表单， 所以我需要
一个get方法，它就在那里 这进来了 对，所以我为get方法渲染它
所以我可以看到它的样子然后 用post 方法是一个
不同类型的请求意味着 我仍然需要为此 渲染它 不同类型的请求所以我们有
这大致 是正确的要求 所以这是默认传递的内容 但 我得到的 要求 没有任何东西
可能所以我们会继续 离开 那个 ，现在这将 实际上
处理我的表单数据，如果我保存这个 并在此处 刷新 并点击保存
它现在说请填写 这个 表单，这是基于我的浏览器 并且看到它说必须如此
如果我真的删除了 那个权利，那么我 字面上从代码中删除它
您不必执行此操作的元素 这 更具说明目的
点击保存它只是移动到下一个 所以我再删除那个 然后了
所有这些要求的最后一个 只是删除它，我 现在 点击保存 Gengo
对我的验证是对的，所以我 实际上向你展示了一种用户的方式
可能会破坏 你的 一些 原始HTML表单，这是Django的地方
安全不仅仅是为了此而已 也是为了这个权利所以我绝对 需要 所有这些 工作，所以我拥有所有
所需的那些领域，这 是一个 实际验证它的方法
验证所以有一个方法 如果我的表单 有效，则 调用 此方法
实际上会说嘿你 有效 你现在知道的数据是好的
我将解释数据部分只是一个 第二，但现在数据是好的
我们将继续打印 我的表格点 清洁
和数据， 所以这将是数据 实际上从 形式 来 通过
在它被验证之后 好的 然后 我们也可以说打印我的表格
错误没关系，所以我们有了 这两个 不同的方法，如果它是有效的那么
它会做，如果它是 无效的 然后它会打印出那些
错误往往是你不会 必然需要这个， 因为形式
本身就像我们已经看到的那样 可能与之相关的问题
这种形式，因为这个 就在这里也是 很多内置的
正在进行的功能 我们只是 不 完全 打破，只是还没有 这样
让我们继续看看这个 我们实际上 把一些有效的数据 ，以便
我们回来了这个创造方法 我会 说ABC 你知道什么 ，不管我
点击保存，没有任何形式没有 重新渲染将解决这个问题
在一分钟但如果我们看看我们的 终端我们看到嘿这里是我们干净的
它实际上为我们提供了数据和数据 那个航空列表数字也出现了 因为我们重新提交了表格
有一些错误可以，所以是什么 另一件事， 我们可以做到你
知道可能会导致一些 问题如果我改变这个价格怎么办？
如果我去检查 元素那么好 改变它改变实际的类型
HTML文本可以，所以我可以 实际上输入文本输出文本
键入文本我点击拯救 嘿它必须 是一个数字
这是其他内置验证 我们的表格实际上是正确的
这个数据让我们实际保存一个对象 让我们真的为你做点什么
最终会 做正确的 ，我们已经有了一个 创造对象的产品和我们
有一些即将到来的数据 通过右边我们有一本字典 这些数据和它的标题
描述和价格权我命名 我们表单上的那些字段就是这样
目的是匹配我们的模型 和 这也是你应该做的
因为我们再次努力 实现这一目标 模型形式，我们正在做很长的路
我们更了解什么是 怎么回事
所以现在我已经拥有了这个 如果我真的 在这里创造了 什么
刚刚传递了这些数据，让我们走吧 提前传递 干净的数据
就像那样，所以我要创造它 从干净的数据让我们回去
在这里，我会说新标题 描述你知道我打的一些价格
保存， 我得到一个小时我得到一个错误 这就是我们能做的事实上
在这里使用这两颗星 把它变成我们的论点
要过去让 我 再试一次 保存没有错误让我们看看 我的
后端，我有一堆新的 同名的产品很酷
所以我实际上能够节省一些 来自我的原始 Django表单的数据
现在对我 有一些验证 我们 可以设置的 参数和事物
这里肯定有很多 更多 的 我们可以做 这些领域，包括
渲染出这种描述的工作原理 所以我们要 再多 一点潜水了 进入下一个
现在我们要做的就是事情 与任何个别领域相关
比方说，你想要 一个领域 不需要或你想改变 它的标签或输入的内容
默认情况下，如果你 看看 在你的形式和 我们自己，我们可以
改变很多 东西很简单地 做 你想要这个领域很好
只需输入 所需的真或假 显然 ，我想要它的标题
被要求，实际上是 默认 所以你真的没必要 写出来的 默认 是否 是
是的，你现在就说错了 当然你可能想知道我该怎么做
知道默认值当然在哪里 文档上的描述
为核心 领域的争论会告诉 你是什么，默认的方式等所需
默认 值为true， 就在这里 在某个地方，下 一个正在改变 你的
标签， 所以如果你不想要 标签 即使是纯粹的只是让它成为一个 空字符串
这是一种非常 简单的方式 来做和 喜欢 像价格你也可以设置一个
初始值因此初始等于 2 比方说， 例如 1 9999好 了，
这是一个简单易用的方式 改变 任何给定的3个初始论据 如果我在这里刷新那些领域 之一
我们走了 它实际上向我们展示了这一点
更具体地说， 不一定 令人耳目一新但又回去了
在这个数字页面的后端 实际上在这里所以 绝对是
我们可以在这做更多的事情 好像注意到我没有 占位符井和也
描述本身不会被渲染出来 作为一个文本区域让我们这样做
首先描述，我们将改变这一点 通过重写来成为文本区域 通过放置小部件等于默认小部件
两个表格 点文本区域就是这样 我在那里刷新它给了我一个文本 现在你可以查看所有各种各样的区域
小部件也在文档上 形式，因为肯定有一个 批量
在那里，你可能最终会改变 像textarea这样的东西，或许你
想要更大或更大 改变那个特定的输入
然后我们就加上一些括号 这里的属性等于另一个
字典 所以，因为我真的压倒了很多
我要 继续这样做 将这一部分分开， 以便我可以做得更多
清楚地了解这里发生了什么 我可能拥有的第一个属性 是
像你想要设置一个新的类 类名在这里新的类名或
多个班也是 你也可以设置你的行
在这里，所以我们说我们做了一个 百行， 我刷新 嘿，这 是一个大的
论坛那里 当然是那样的 可能不太可能你这样做
更像 20岁的东西，有更大的东西 文本区域 ， 当然你可以做
列也没关系，当然如果我 在这里检查这个元素我看到了嘿
我有这个名字，我有两个 我添加的课程，然后我有一个
ID如果我在这里更改ID，我该怎么办？ 文本区域的 短划线ID
刷新了在这里 您需要 确认 我把一个 逗号在 我说 的 到底
这 是一本字典 我现在看到他们ID已经改变了所以
您想要的不同属性 放在那里你绝对可以和
这是一个非常简单的方法 来做到 这一点，现在 你 也可以在 标题标签上这样 做， 所以我们
我想说我们想放一个 占位符在这里让我们继续前进
做表格点文本输入这是 char字段的 默认小部件 ，所以我们
只会把它改变为存在 属性等于两个占位符和
无论你想要什么占位符都是如此 你的头衔说， 我们刷新
你知道什么是你的头衔 当然显示占位符
你可能也想在里面 你的文字区域如此描述
等等，这就是你的方式 覆盖一些 基本的东西
形式本身 ，这也改变了 怎么 基础只是 工作 微翘
至少是所要求的权利，所以如果我尝试 保存它，我输入一些
其他的描述不再 要求所以它不再显示 价格和头衔在哪里
如果我摆脱它的价格所需要的 会告诉我 填一下这个填充字段
本身， 那当然是 网络 浏览器这样做，如果我这样做
我摆脱的小东西 在这里所需的元素和命中
再次保存它给了 我同样的东西 验证，这是非常酷的但是
它只给了我们一些暗示 实际上是什么验证这一部分
很好，我们实际上很多 与 此产品形式 相同
表格本身不是任何形式 在模型意义上的不同
形式呈现出同样的东西 在这里唯一的区别是如何
视图处理就是这样 你可能还记得我们 刚做过 表格
本身然后我们就保存了那些数据 这实际上大致相同
所以现在我们可以渲染 我们的新验证类型
形式让我们继续前进，这样做， 和下一个
Django有很多 内置验证 对于它的领域，所以当我们渲染一个
我们实际上是 Django 字段或Django形式 可以提交一些数据和Django 会
检查以确保 数据匹配 内置验证，如果我们采取一个 看一下现在的模型形式
我们要用，我会告诉你的 覆盖该字段非常简单
我自己是对的，如果我真的带来 这个标题在这里我看到了 这一点
和那个名字一样 实际上 你 如何 覆盖 进来的东西
默认情况下， 这是一个很酷的小功能 希望你 能拥有这样的东西
实现了，我在最后提到了 一个，但现在这些形式实际上
相同，他们有相同的三个 领域唯一不同的东西
视图是如何处理它的 但我们要回去 使用 它
产品形成本身，所以我要走了 提前并 评论所有这些和 我们会回来 到 我们原来的
产品创建我们正在使用的视图 好的，我这里 有一条 捷径 我 在 这里 做的 方法就是 这样
请求发布然后呈现这些 所有这一切的事情都是渲染出来的
如果发布数据 ，那么这种形式 否则我们只会渲染出一个空的
这就是 那种情况 右边有 好凉好 了 ， 既然 我
明白我想要做的是 进一步了解这是有效的
相关的东西，所以让我们继续 走 一看， 确保 我的表格 即将到来
通过这里的刷新，我得到了 我的价格我的价格是 必需的 所以它是
可能我可能需要保存一些 这里的事情让我们 确保一切
我们已经把它们 放在 那里了 我们刷新我的标题消失了
如果我回到 创作它会告诉我 我 有占位符，所以是的
我绝对可以复制所有的 这些东西也在这里
一旦我这样做，我就会变得更强大 形式是我想要的方式 看起来几乎我想要的
当你这样做时，工作如此 意识到你确实改变了很多
是的，这绝对是捷径 这样做有第三方包
为 我们做了很多这样的事情 我们不会 谈论尚未
因为 它也有点 过分了 先进， 但我会谈论
就像 我想要我的头衔一样 你知道包含某个词吗？ 让我们说我希望我的标题包含
CF e对这个词本身 或 那个 那些首字母本身就是我需要做的
这里进来 说定义 干净 强调然后我场的名称，以便 无论我 将成 为什么样的领域
抓住这个验证是什么 我想干净的头衔，所以我想要
以确保我的标题 有一个特定的 在那里的项目，所以 只是说自己和我们
可以做我们的和我们的关键词 那些可能不是必要的但是
通常，如果你不确定你什么时候 覆盖一些东西只是确保你
把args和关键字放到我们这里 得到的 实际的标题本身 我们做自我点
清洗 数据点得到标题好，所以这将是 得到默认的标题，这是会得到
帖子Jango表格清洗所以Jango 最初将清理表单本身
那么它会触发此称号 换句话说，这不是最重要的
例如，所需要的将是必需的 绝对还是在那里 验证这一点我们就要去了
提前说并且如果冠名或者更确切地说是CFE 在标题中，我们会很好地 返回
要做到这一点这样 的权利 让我们 我们只是做的 第一 逻辑
因此，如果CFE在标题中，那么我们将 无论默认值如何都返回该标题
否则我们会做点或者表格 而是提高表格而不是 验证错误 这不是一个有效的标题，所以我们
保存，让我们看看刷新 在这里我会说ABC 点击提交嘿这个
是不是 标题有我们的验证
真的很简单， 我的意思是不是 那种先进或复杂 的
当然我实际上不会写它 这种格式我会改为
说，如果不是在 那个标题然后提高 验证和默认返回
该标题现在 这样做 的原因 是如此 如果我，我可以有多个验证
如果新闻不在 标题中，我想 不是有效的标题，所以ABC空间我们
实际上有两个 不是无效的 好吧 保存并刷新这个让我们这样做
再次 所以我说ABC我点击了保存 我已经得到了这个
不是一个有效的标题， 所以马上就可以了 蝙蝠 它会提高那个 现在假设
我把CFE在这里一样 ， 并 再次 点击保存 它会说不
约一个标题 所以它必须 验证所有这些条件
你可能有，当然还有这些 对于标题来说 这不是现实的
很可能是 更现实 像电子邮件，以便让我们说 ，例如
如果我做了干净的电子邮件，我们确实发了 我会扔在 这封电子邮件 中只是一个
第二个是实际的字段本身所以让我们 如果不是 或者 更确切地说， 请继续说
如果电子邮件以II D U 结束， 或者如果没有 以edu结束然后我们将做Ray的形式
验证错误这不是有效的 电子邮件那么我们就可以返回该电子邮件 和
因为我这样做 是 一个新的 小功能，你可能 最终
使用是你可以说 电子邮件等于两个 形式点缀电子邮件字段通知它是在
模特形式肯定不在 模型， 所以 你可以 在这里刷新 我得到
我的电子邮件填写在那里 我说ABC @ gmail.com 我点击保存不是有效的电子邮件 所以这很酷的验证是公平的
简单，然后你可以运行你知道任何 现在我在这里进行各种验证
会说那样做 国家不仅仅是一种形式，而是从那时起
我们一直在以这些形式工作，这是一个 真正好的方式来介绍验证
作为一个概念，你绝对可以做到 验证模型 的字段为
很好，但这个想法进行验证 工作 无论是模型形式还是仅仅 是 模型形式
标准的django形式和你应该做什么 看到或希望这一格式 你注意到的是， 如果我发表评论
这个，并将其改为一种形式 表单本身将呈现完全相同
所有的 验证都会呈现出来 所有这一切，但当然 是一个
警告是实际形式的工作方式 在视图中它略有不同
所以要设置窗体我们所有的初始数据 这里要做的就是创建一本字典
就像初始数据集一样 什么东西，所以我们设置它
相当于它的名字 表格里面的字段如此看
在我们的原始产品形式的形式 这里我们会做标题描述价格 我们设定的任何东西
这里的初始数据当然是 在表格本身之外， 因为它
可能会根据您的观点而改变， 所以这个 是我真棒标题 类似的东西
然后我们将它传递给 我们的表单 所以我们只是说初始等于那个
数据，我们可以再使用任何 一个 这是 在那里，所以如果我刷新领域
在那里，你 看到 我们 有什么 那里的初始头衔不是一个
占位符它实际上是 相同的文本 或者它是那里的实际文本
现在我不知道你会经常这么做 更可能以原始Django形式执行此操作
你要做的就是在产品中做到这一点 形式或模型形式本身，如果我
它改变到模型形成数据 是 没有任何不同， 它 仍然看起来完全 同样的，因为模型形式
与 Jago并不完全不同 形式，所以如果我实际上增加了一个
属于这个，这 实际上是 改变一个对象，是在
数据库，以便更改我们想要的对象 首先抓住那个对象所以产品
得到的对象现在 会说 说 ID等于 1，所以我们仍然 需要
寻找获得这些的动态方式 对象，我们还没有谈到那还
但要实际改变一个 我们需要做的就是将其传递给
实例等于查找的内容 在这种情况下，它现在就是obj 我所能做的是看看 那个
对象，所以我仍然有 初始数据 让我们看看价格，如果
我在这里刷新， 我看到了价格 实际上虽然最初改变了 你正在编辑时通常不会使用标题
你可能在后端有什么东西 不会有那个 初始数据来
通过而不是你将拥有的是 实际的 标题本身，当然还有
最后一步，以确保你可以 编辑它是第一次做有效的表格
是有效的，然后你可以 做表格 点保存 好吧 刷新这里，我只会说产品
而不是产品标题，我会改变 我打 的价格是一些荒谬的价格 保存似乎工作
我们只需要仔细检查管理员 确保我们看到我们的 制品
第一个是因为我们要去 关闭 我们看 得很 第 一个 的产品，我们看到，新的价格它
这就是 你将初始数据设置为的方式 以及编辑模型表单数据
现在我们要改变我们的内容 关闭URL， 也称为a
动态网址所以我们首先要做的 说对象等于 产品对象得到
ID等于1，所以我们设置了 默认，所以我们可以看到 究竟如何 这是有效的， 所以对象等于 obj 和
然后我们将展示这个基本的 模板来自这个基本模型然后
最后在我们的URL中， 这就是它的样子 喜欢，但我们想做的就是成功
动态是 我想要的 在这里传递一个ID ，如果我放入一个或
这个内容实际上会改变 基于此，我们只是 把 它
在这些括号中，然后我们 声明类型，所以在我的情况下，我要去
要 使用整数，您也可以使用 STR 你也可以使用slog， 还有一些
其他我稍后会参考 整数，然后我会给它一个
名字我 来说，我会说ID，你 也 可以 说我的身份证或其他任何事情
你想ID是默认的 权利，使 这种标准正在使用
像ID 或者你正在使用的东西 你会做 slug 类型slug：slug 但是
我们将使用 整数和刚才的 int 传递那个ID ，它的作用是什么 传递给我们观点的新论证
我们的视图默认有请求 它传递了新的ID参数
我们再次声明了这个名字 你在这里 更名 喜欢我的ID 你
将不得不 改变你的名字 争论 就在那里，我们会留下它
这只是为了 说明目的而是 现在会发生什么是我们的 目标
会根据该ID进行更改 因为我们要传递那个变量
就像那样，我们保存了 那个和 我 在我的页面刷新我转到第1页我得到
一个动态的观点我的 意思是我需要做的 我 确定 在这里保存一切但是
如果我真的这是一个错误 没有更新我的查看功能，这 是
发生了什么事， 所以我会保存这个 我会在一秒钟内重播那个错误
但如果我在这里刷新， 我现在看到了 你怎么知道它现在是一个动态的URL
它实际上是基于查找 关闭数据库中的内容
所以，如果我们进入我们的产品并点击 在他们中的任何一个我们都看到 它也是
做同样的 查找授予 URL 略有不同但是
如果我，数字再次迭代 实际上将其更改为ID并刷新
在这里我得到了这个动态的问题 查找或我们的观点这真的很公正
我们的视图功能在这里不知道是什么 这个关键字参数是我们所 拥有的
以确保 我们把它放在这里
处理来自一个缺少对象 动态网址我们 要导入一个新的
快捷方式称为get object或404 基本上它会提高404页面
如果它没有被使用， 那么我们需要做的就是 这里是获取对象或实际的
我们正在使用的模型，然后是 查找我们正在使用的参数和
这将解决这个错误，所以我们保存 现在，如果我 在 这里进入产品
不存在不再 会给我 这种错误反而只是
说没有找到页面这是一个有效的错误 还有一种方法可以做到这 一点
将它放在try块中 让我们从Jango那里快速做到这一点 到HTTP导入 HTTP 404这也将
像这样得到404页面 对象或404 所以我要继续
并评论这个并做obj 等于产品对象得到 ID 等于
到ID ，我又说我会把 它 在这里试试块来处理 例外情况除外，这是产品或
我们不会存在型号名称 继续，提高 HTTP 404 好吧
我们再次在这里保存刷新 如果我这样做的话，我们一直保留这个错误
仍然将其更改为其他数字 这样做很好， 所以实际上让我们 看看这个真实的快看我怎么样
知道这 不是事实 我一直 这么久，所以如果这样做 我保存这个就像 我得到的刷新 一样
这是一个例外 这是一个例外，这只是一个
处理set异常的简单方法 获取对象r44 是他们首选的方法
因为它比 写作快很多 所有 这些不同的东西 或
甚至只是 整个 try块如此反复 我会用它
删除数据库中的对象是 所有你输入的超级简单 就是obj
点删除 ，实际上将删除 那个对象， 但不幸的是，这 将
发生在所谓的获取请求上 是的， 所以我们想避免 这样做
发生的事情我们希望能够很好地拥有它 让我们说在那里确认发布请求 是其他要求有什么
称为删除请求， 但我们会 在邮寄请求上进行确认
他们实际上想要 删除这个没关系 那意味着什么呢？
在这里呈现出的形式 ，将只 请给我们发帖请求真的
这里没有数据，但我们需要知道的全部内容 如果他们真的提交此表格
这意味着他们想要删除它 否则他们可以返回一个URL 和
当然我在这里使用这个URL模式 没有什么不同于什么
我们以前 好了，所以要做到 这一点已经看到 然后我们就要继续 说吧
如果请求方法等于发布 那么 我们将继续删除它
对象再次这是一个确认 删除它就是它实际上不是
删除它的方法只是确认 如果我现在去 那就他们想要这样 任何给定对象的URL
我讨厌说是，如果我 真的 刷新在这里
我看到它实际上已经消失 了 在这里最后一件事是排序 的
将它们重定向到其他地方 我们可以 只需使用重定向快捷方式即可
只是返回 重定向，我们只是 回去几页好吧 或者 相对我们只能说是和
会把我们带回去 ，所以我们可以 做到 类似的东西， 那肯定带来
回一对夫妇 更次，是的，这是 实际上删除了这些东西 数据库
所以我们删除它，我们说它是 带给我的 回到我可能列出的那些产品
他们出来了， 但这 是在 数据库我们现在看到这些都是 走了
列出我们首先要 获得的 对象 查询集， 通常命名
作为查询设置螺钉设置对象点 所有这都是一个奇怪的设置
给我们回 对象和列表 查询的典型上下文变量名称
集就是 这样的对象列表，以便 这意味着在我的变量中我可以
实际上渲染出该对象列表和 你现在应该知道obj 或者
对象列表中的实例是我的 循环内部 的对象列表，所以我可以
使用实例变量里面 for循环， 让你知道我的产品
标题是这样的例子 那个ID ，我们只是把它放到P中
我们去那里 好的，所以我们保存 ，保存 视图保存
您的网址 ，如果我们去，请看看 回到产品现在，我看到 了 我的 全部
来自 查询集的数据 渲染也很明显，我没有 想要发生， 但现在我真的
有一个我可以看到的项目列表 这个模板让我摆脱它
对象列表但你 应该 做的事情 通知这是正确的在这里可能 是
重复使用任何模型，那就是 目的是我们要 确保这一点
我们可以让这些东西重复使用 这就是我们使用标准名称的原因
船员集和对象列表
创建一个 链接到任何细节 给定产品你可以做点什么
像这样，当然会 实际工作中它会带你到 相关的URL 和路径与那些动态
网址很好 但问题是， 如果你
曾经改变过任何这些网址 例如， 你将它们全部更改为P.
那么你必须 回去 ，并确保 所有这些事情都发生变化，
它只是更加繁琐 我们能做的就是创造一些东西
在我们的 模型 上调用实例方法 或 我们模型上的一个函数
为我们快捷这个，它叫做get 绝对URL 这实际上是
获取内部 URL的约定 Django所以它在其他地方使用但是
对于 现在我们就 继续前进， 在我们的使用它 ， 所以我可以返回
产品，无论 我是什么 使用F字符串或 用于URL 在此字符串替换可以让我
实际上抓住 了URL的基础 离开实例， 所以如果我改变了
我可以确定或知道的网址 到处都有 绝对的URL 这项工作也会更新，所以我们
只做一个绝对RL的实例 这给了 我那个实际的URL
是时候过渡了 绝对口头的方法是动态的
本身这个字符串 就在这里 等等 如果你查看我们实际命名的URL
我们的网址是故意的，我们没有谈过 关于它们，因为 它只是相关的 到这个部分，然后 是这个
基于任何事物发展 这是命名，所以我们使用a
被称为反向的 函数 进来了 这里的反向呼叫是一些 我们使用关键字our的默认值
希望你熟悉 关键字 从这些意义上说， 这些是哎呀
我传递给我的关键字参数 查看所以我知道我需要通过这些
还有什么，我需要通过 良好 身份证和自我 完成身份证， 所以自我指的是
然后到对象的实例 ID指的是构建的ID
进入它 接下来 就是我需要的东西 这个名称叫做 实际 名称
将处理此数据的 URL 这就是我们的产品细节
仅列出产品详细信息，以便我们保存 我们继续并 刷新我们的链接
当然所有 这 一切 现在都是 如此 这是一个干净简单的 方法来 确保 我的 网址是动态的，我的意思是
如果有的话，动态在我的网址中位居前列 改变这个让我们 说P那些链接
实际上会更正，如果我 点击它现在实际更新它
同样，它贯穿整个 网站到处都是绝对的
使用的URL方法有 使用此功能的第三方软件包
好吧，让我们 记住 这 一点 当谈到更多
动态确定你可以硬编码 但是 这绝对 不是推荐的
方法让 我们把 它留作产品 削减
你把我们迄今为止所做的一切都拿走了 然后把它清理成自己的
名称与 您的 应用 匹配的视图 你会看到 像这样 的 东西
创建 视图我更改的更新视图 这个列表 查看 详细视图
改变这一点，所以你应该 有一个 如果你不这样做 ， 如何做到这一点的 想法
现在我们 回去看 一些视频 我们会查看我们的网址，您会看到
这样的事情与 此有关 但问题出现 在两个 问题 上
形成第一，我们 有这不是 实际上 他们可以 重复使用 我 的应用程序
必须实际导入所有这些 查看我的 网址和第二个
如果你不小心使用了同样的东西怎么办？ 名称和相同的关键字参数 别的地方
记住我们的模型就是基于此 会发生 什么事情才会发生 没有按预期工作你去了
完全不同的观点 不是 那么我们想要 做的 就是
实际上把它放到自己的URL中 它正在使用的应用程序内部的模块
这使得穷人 可以使用的权利 也避免我只是的情况
提到这样做我可以做这些URL 实际上如果我想要 导入 所有 这些
或者我只是快速 导入 像这样，所以这 是一个亲戚
导入我拥有的所有视图 它是导入路径然后我们只是
在我们的主要部分中声明URL模式 配置URL 我可以继续
切掉所有这些并粘贴到我的 URL模式现在可以，所以现在这些
那些应用程序的URL模式又回到了我的 URL我实际上有办法使用它们
这些网址就在 评论中 它已经在那里，所以我们必须这样做
do是import include然后引入 给出了什么的例子
在我们的例子博客的应用程序，我们正在使用的 产品应用，我们只是做了这样 的 然后在最后和现在放一个逗号
我们的URL模式是我们的主要配置 URL 模式更清洁，我可以
实际上删除 了那些 导入 来到那里所以我说这个
在这里刷新我没有得到一个页面 发现这里发生了什么事情
实际上向我展示了堆叠的水平 我的网址 所以，如果我做产品产品
有效， 但这 不是我们想要 的 唯一的原因就是这种情况
因为我们还没有 摆脱我们 原来那条路就在那里
摆脱 它将解决 这个问题 问题
肯定还有一个 我们需要 解决的 问题， 所以我们保存
这个和刷新我还有我的 我点击的产品渲染
在这方面，它仍然把我带到了 错误的地方，这就是 名字
如果我们做应用名称，间距就会出现 在我们的应用程序URL中 - 名称
我们的应用程序所以在我的案例 产品对 你 现在我可以做的就是把它称之为
我的模型只是在这里添加 产品：现在我的反向是基础
关闭应用程序本身或 命名空间 和URL名称，以便我们保存 该刷新
而现在它实际上会带走我们 这应该是一个常见的问题
所以，如果你必须测试一下 并尝试 它是 你自己的
请继续这样做 并做到 意识到 在URL上 有 名字
并不意味着它会检查 确保 那些东西是独一无二的
所以这是一种方法，我的意思是你 如果您可以更改您的产品应用名称
需要，这将允许你的 命名空间 要改变， 因此你的
逆向改变方法和你一样 可以看出这就是反向实际上的原因
非常重要的是这是主要的 原因是我想 带 这个 应用程序整个nother项目我的URL
我所要做的就是宣布他们是什么 作为我必须确保的应用程序名称
我的用户知道或第三方 包知道嘿，我们走了，我们得到了
我们的产品网址以及此处 那个命名空间 我意识到有很多
在这里，所以你绝对 不会 想多次试试这个
多个应用程序使多个模型做 这些观点完成了我们所做的一切
完成 导致这一点多重 自己一次
接下来的几个视频将结合起来 我们已经获得了知识
这个系列是我想要 确定的 你所能做的就是在这里，这些步骤之一 通过八，继续做他们
现在，如果可以，我将 使用它 模型， 但 你可以使用任何模型
喜欢但再次确保你这样做 如果您 不知道如何操作它们的步骤
回到开始并开始 从那里， 所以没有进一步的ado let's
跳进我们的 观点并制作 绝对最简单的阶级面貌和
这是 一个列表视图 所以我们将做类文章列表视图和
它将继承Lois的观点和 我 必须提供 的列表 视图
称为查询集的东西，这是一个 要求所以文章 不 削减对象
所有 这就是我的 整个列表视图
注意我没有必要调用渲染我 不必写一个模板名称我
所以不必做任何这些 事情 有了这个，我将 进入我的网址 对于这个应用程序，我将在这里导入它
我会把它 带到我的默认值 它的路径我们见过的东西 在 我要上课之前
名字，然后我就 打电话给 因此它将它基本上变成了一个
我们见过的基于功能的视图 我们的产品浏览页面就是这些
所有 基于功能的观点现在都是我们的 基于类的视图，这就是你的方式
实际上将它作为一个类运行它 这个现在我要去为我的网址和
引入我新创建的博客网址好吧 所以我有 里面的URL模块
该应用程序让我们继续 看看吧 在我的所有帖子中都 刷新了
我怎么看待他们他是那样的 说模板不存在所以 默认类页面视图查找
特定模板及其外观 对于他们来说，应用名称是模型名称
然后是视图名称或通用名称 查看名称所以在我的 情况下它 是一个列表
查看所以它会寻找博客斜杠 型号名称下划线列表 ml这是
没有任何不同的 前进 权利 让我们，让我们实际上把 这个在这里
只是对我们的参考 未来所以我们需要做的事实上
创造我实际上已经有了 这些项目在这里有两种 方式
我怎么能真正引用一个 不同的模板，我们可以说
模板名称等于我们的模板 想要这样的文章斜杠文章 列表 HTML 这将允许我使用我的基本
文章列表的模板对我或我 可以基于我的通用基础
不会基于通用的 我 只是想告诉你如何做到
覆盖这些模板，以便我 刷新 这里和现在我已经有了这个清单
通过
下一个最简单的基于类的 视图是 嗯，这是我的详细观点，我实际上
要复制文章列表视图和 只是详细视图改变它 ，
就这样拷贝 使其 我的网址进来了，我要保留
这些东西按顺序就是这样 个人喜好还好然后失望
在我的网址中， 我 将取代细节 就 这样，我要去改变 的
PK的关键字参数我得到了我的 这里的模板已经非常简单了
所以我要继续前进， 进去 我在那里的第一篇文章
做起来并不是那么难 实际上很 容易 这样 做， 如果
我没有覆盖模板 会发生，我会得到类似
这个，如果我改变关键字 回到ID的论点会发生什么
我会 得到这样的东西， 所以你 如果，你 绝对可以拥有 自己的查找
你想，但默认情况下 它在寻找 pique或slug的关键字参数
这些相关在不同领域中 模型所以PK也称为ID
字段所以ID 实际上等于 pk但它 代表主键是一点点
更高级， 但如果我们试图查找 通过slug 让我们只需将URL更改为
slug关键字参数URL slug 它说它无法解决这个问题
进入 我们的领域 这些是 我们唯一的 选项活动 内容ID和标题
让我们继续， 回到ID和 然后在我们的视图中覆盖一些内容
是这样的def get对象方法 特别是内置于基于类的视图 与 详细视图列表视图它
没有意义， 因为a 细节视图想要一件事我们都是
此视图希望列表 具有查询 集 让我们继续前进，得到这
通过使用我们之前看到的方法 得到对象或 404所以我们要做的就是
这里是return get object或404 实际的模型名称本身然后我们
想要这个ID ，我该如何获得 从像如何获取URL中的 ID
它是 来自 URL的 关键字参数 颇有几分比的观点不同 这是 详细视图的正确观点
它被传递到 那个通用函数中 但是在我们基于类的视图上却没有
工作方式这样 反而它是如何工作的 我们可以使用自己的关键字args
获取ID ，这是实际的关键字 正在 通过 传递的参数
该URL 您可以看到它们 是 什么 打印出来，但这是 我们 如何 实际上会覆盖那个
关键字参数是我们的URL然后 我们可以看看我们的观点，你是什么 知道它回来了，它只是工作
精细 所以这是非常相似 ， 我们已经 看到 了什么
之前，但 它 只是略有不同 现在我明白了这可能
感觉有点 混乱 这是主要的事情 理解是基于类的视图继承
从很多 不同的部分 到 覆盖它的主要功能就是
获取对象详细信息查看主要 详细视图的功能是渲染
现在是 来自特定 对象 的模板 我摆脱了这里的查询集
刷新它 实际上我 仍然会 工作 不需要那个查询设置什么查询
set是否限制了选择 可用于其他的详细视图
如果我，请让我们看一下 将其更改为过滤ID是
大于 一个不用担心 ，如果你 不明白那 是 什么， 但如果
ID大于一，我 改变了我的 URL 再次返回该主键
这是 我们覆盖 的默认 如果我刷新，默认工作人员现在设置
在这里它给了我一个找不到的页面 那是因为默认的查询 对象
不 这个查询的一面设置它不存在
在那里，这就是那样的东西 非常酷，可能希望如此
希望这会让你想学习 更多关于查询集但无论如何我是
要继续前进， 留下 评论它 离开那个物体然后离开
URL作为ID返回，因为这几乎是 与 我们已经完成的工作 相同
与我们的其他观点
拥有我们想要的创建或更新视图 以确保我们有一个模型形式 ，以便
这个模型我将继续前进 导入我的观点
所以从表格导入模型表格 然后 我要继续 创造我的观点
所以我真的很好，我的意思是 ，我可以 复制这可以是它可以
绝对非常相似，所以我们打电话 它文章创建视图，我们去 我会打电话给这个创建 写的
我需要制作那个模板文章 创建HTML，就像产品一样
创建它可以 只渲染一个表单 很简单所以我们在这里得到了我们的看法 让我们继续把它带进我的
URL并再次创建为视图打开 那条路，让我们进入 博客创建
好的，所以我们在 这里 遗漏了一些东西 它说使用mixin模型
如果没有这些领域是很好的禁止 我们看看我们的观点，我们看到了我们 实际上没有引入我们的模型表格
那么，如果我只是形成类 等于 文章模型表示说刷新
如果我 经历过这个，那就是我们的形式 它实际上会保存那些数据
将在 默认情况下工作，它会 关闭 所有的 验证，如果任何的内
我的模型再次形成那些验证 我们在产品模型中所做的那些 因此，如果我想 验证
标题我会说干净的标题 各种验证和也的
内置的， 所以这个视图 对我们来说，这是我们仍然拥有的 相同的查询集，我们也有一个
称为形式有效的方法需要自我 我们在这里说的是形式
这实际上是形式有效数据 所以 我实际上可以做那个打印表格
清理数据 然后我会回到 超级的
超类内置 的默认值 形式有效的形式，但这将
让 我 看看 实际上是 什么数据 路过 这里，所以如果我 刷新新
标题这是我 点击保存的 第二篇文章 我确实得到了这个错误，这对我们至关重要
会调整这个， 但如果我看看我的 在该错误之前的终端我可以 滚动
起来，我看到干净的数据还可以 什么是此错误获取绝对URL
是 应该由做的方法 默认情况下你的模型，所以 如果我们
回头看我们的名单 ，这些 项目被 就像它确实 创造了那样站在那里 除了该项目没有去任何地方 ，
如果我们创建这个获取绝对URL 方法得到绝对的URL，我想要的
它是基于这样的反向 如果我复制了另一个， 我会的
在这里沿着这些方向做点什么 我知道我肯定会切割你的东西
应该知道如何做到这一点已经 没事了 然后应用程序名称是文章 反过来，这将是文章
细节好，所以反向功能是 去那个细节视图所以现在让我们
继续创建 另一个帖子 然后说 新的这是我们点击保存的新帖子
现在它实际上需要我到那个URL 然后是获得的关键方法
绝对URL方法和部分 信条视图它实际上也是其中的一部分
更新视图也是 主要的 这里的事情是我也可以改变我的位置
希望这只是重写 像这样的成功URL 或定义get
成功URL，您可以返回 一些路径 这是另一种覆盖 它的方法 但是
但默认方法效果很好 对我们来说 因为机会很好
你可能会创建一篇文章 要去 想 它看上去这么
实际的下一部分很漂亮 很简单我们可以复制这个create方法
我要把它放在 我的细节 之下 查看并将其更改为我的更新视图
文章更新视图，很像我们的 详细信息视图我将 要 更新一个 特定的文章， 所以我可以使用 它
再次获得对象方法，非常漂亮 除了 我不做的 其他 事情
实际上必须 改变 我 的模板 现在可以把它带到我的网址并抓住
像 这种变化，所以如果我想 去更新它我会输入 更新oops未更新但更新和
我们可能需要 确保我们保存 一切都还好吧 去 更新，这是
我点击的第三篇文章 保存 它带给我 回到那个 方法 那么 深的创造 和更新是几乎相同 的 唯一
不同的是，它实际上抓住了 对象或事物的实例 试图改变仍然使用相同
表单仍然使用相同的查询集
我们刚刚使用删除的移动对象 视图和它非常相似
详细视图 所以文章删除视图 并删除视图，然后我们要
使用名为delete的其他模板 然后我们仍然希望得到
这里的对象方法和我的实际删除 形式是相同的一个， 我们
在产品中创建，但有例外 我在这里称它为产品并发布
在这里，我们保存，我们保存我们的意见 这里做一些导入并引入视图
作为视图的名称取消注释相同 所以让我们 回到帖子里吧
例如说第二篇并删除它 你想删除它我们说是的 再次，我们 这里 没有成功的 URL
在这种情况下它不会使用 get 绝对的URL方法， 因为那
我说的话，对象不再存在 是的，它会从数据库中删除它
这 甚至 都没有 看到 对象已经消失所以我们需要做的是
设置一个， 而不是 设置 实际的字符串，以便更成功网址
像博客这样我会做什么 相反，我要带进 我的
从Django URL导入反向调用 实际上逆转让我们把这一 权利
在这下， 然后我会继续 并说定义获得成功URL发生在
本身，它会逆转 博客列表视图或者你知道我们
这里实际上是文章列表 我看的好东西，所以我们改变它
文章列表，这 也是文章 好吧就在那里
很酷， 现在这是 我们的 新删除视图 我不能再留下那个 查询集了
它就像 细节 一样无关紧要 查看因为我在那里调用了对象 我保存 了，现在我去删除
我想删除它， 我们说是的 删除它它使我回到 我的全部 帖子很简单，值得注意
那是空气 删除错误， 如果我 没有
得到绝对的URL方法或者说得到 成功的URL方法 ，我尝试删除
什么，并说是的 错误 实际上阻​​止了删除不同
创作只是一些 有趣的 东西 知道，但这是基于类的观点
这就是它的要点
这是一个相当标准的功能 视图和所有它真正做的是渲染
出一个我们已经拥有的模板 授予我犯了一个新的应用程序为这个
我制作了一些网址， 然后将其添加到 我的网址中 设置 以及 我的网址 ，以确保
你知道怎么做但我有这个 基于功能的视图，如果我看 它
这 就是 它只是 渲染了一个 模板不是 一个巨大的东西会在 这里
你 必须把它转换成一个 基于阶级的观点我们将继承
从一个名为view的类，所以这是 基本视图类所以基本视图类
等于 几，所有我要做的就是 说我要上课，无论大家认为 在这种情况下打电话给我，我会打电话给它
课程视图， 我们将再次通过 在那个视图中有那么准确
相同的功能工作我可以把它正确 在 使基于功能视图我现在
把它翻过来 但是如果你还记得的话 我们基于 函数 的实际名称
观点并不 真正 的 问题，但内 基于类视图他们物质和
它们与HTTP方法 相关 它正试图 在其他方面处理 单词get是默认值， 因此get将运行
在这里，但就像你提交一个 像RM这样的论坛，你会经常使用 post 方法，这实际上是如何
你会处理一个我们会得到的论坛 以后 但是现在我们已经完成了我们的课程
查看我们会将其导入我们的 网址中 我们会用旧的评论
一个基于函数的视图在这里保存 那并在这里刷新，我们有一个
我们必须加入的小问题 在这里自我， 因为如果你是
熟悉 Python，当我们说 像 新的obj或新对象
你常常做类似的课程 那个 和那个对象是一个实例
那类引用的东西 喜欢 得到我们 必须实际参考
我们内心的自我和我们 如果你看到，应该解决这个错误
这样的事情意味着你做到了 同样的
我刚刚做了哪个是 非常重要的 看，现在它实际上是渲染出来的
那个模板就好了 标准的 get方法，你可以打印
如果您愿意，可以使用各种方法 请求方法，但请注意 这些 除了事实之外 相同
这是 另一个班级 这样做的好处是说
类似模板名称等于 关于HTML然后我们 会 去 提前并说自己的点模板名称和
这大致完全相同 所以这是 另一个非常酷的事情
这方面实际上就是进来了 在这里并将此模板名称更改 为
联系点HTML 保存刷新 你知道我的模板有什么
实际上改变了所以这是其中之一 使用基于类的巨大优势
观点是改变事物是多么容易
所以我们现在有了这个模型 我要把 它带到我 看来
这是一个详细的视图我该怎么做 实际上我们现在处理它
想从我们的URL传递一个参数 所以 里面 的 网址站 PI 的内
功放 我们只是基于我们的产品
网址没有任何不同， 他们 什么都不是 新的所以我想真正做到这两点
这些模板能够工作这么办 这个我要传入ID等于没有
ID等于无表示ID为 当你这样做时 不再 需要
只是ID 意味着参数是 要求说这没有办法
我们在这里有默认值 如果你愿意，还可以设置另一个默认值
基本上 ， 这 意味着这两个 模板或这两个基于类的视图
实际上现在就让我们好了 其实 看看这个，什么 我要用我的 标准模板
我要做的课程是削减细节还是 相反，课程细节 你知道去吧
以及详细视图一般视图 所以我要继续制作我的文件夹
为该模板新文件夹和他们的 课程新文件夹或新文件
那里说课程细节，但 HTML和 我要继续， 只是复制 和
粘贴我以前 做过的 东西 并且只是使用标题，因为那是
我实际上唯一拥有的领域 模型好吧所以我现在有了班级 基础
查看运行两次，但两个不同 模板名称一个是联系出HTML
另一个很好的离开 了 我在这里设置的默认值是这样的 我继续 保存，让我们走吧
继续运行它 ，而不是课程 如果我在这里刷新，联系仍然是
出现， 如果我去一个 或某种类型 详细我现在有一个空模板
为什么我有一个空的模板 因为我没有通过任何背景 进入这个模板本身，以便通过
那个背景，我们只是从顶部做起 模型导入课程
我们会继续前进并做到 快捷方式获取对象或404，我只是
说对象或相当obj获取对象或 四个或四个课程ID等于ID 好
因为我的默认值是 none 我会说如果ID不是没有意义的话
过去的说法是不是没有 那我就 继续说这是obj是什么
我也会在这里设置我的背景 然后我可以在这里增加它
对象等于obj，我们去 或者说我们想要将联系人传递 给所以
我们说清爽的 市长打招呼 世界，这是我的第一个名字
我还可以添加的对象 ID只是 仔细检查 我是谁
正确地做一切保存和 我们去了， 我们有 我们的身份证 和你好
世界
让我们继续创造 原始 列表显示
非常简单的课程列表视图和 继承自视图我们可以添加一个
模板名称就像我们做的那样 之前 我会打电话给 这个课程
列表，然后我会做一些新的事情 并 树立了一个查询这里设置 成
当然 不是对象 ，然后我会 继续做，找到自我 请求args 和关键字args然后
我们只是继续 前进并返回 好
自我点的请求的呈现 模板名称然后我的上下文我会
在这里放一本字典然后说 对象列表等于自身点查询集
为了更好的说明目的，我会 只要把它作为这方面 刚
那样好吧很酷，所以我带来 这进入我的网址，现在我 要去了 前进，你知道摆脱这另一个
一， 并留在这里视图和 然后在我的模板中， 我会继续前进
说课程列表点HTML和我的 产品列表我就复制一个
在那里， 我不会担心链接 现在我只是显示 实际的标题
保存 好， 然后回到我们的 课程只是一个列表 ，我们看到
我 在那里 有两个 非常 简单 很容易，但 我想迈出一步
进一步让它更接近如何 通用视图有效，即定义
get查询集方法在这里和什么 它 会做的很好，它会回来
自我点查询设置然后在我的 上下文而不是查询设置 自己
将只会调用自我点获取查询 那个或这个实例方法在这里
相反，如果我说 刷新 这里是完全一样的但是 如果我 实际上从这继承并说
从该课程列表中列出我的列表视图 所以让我们把它放在下面 在这里，我说查询集，我把它
等于 当然不是对象 不过滤 ID等于1这实际上会给出
我是一个项目清单，即使它会 只给我一个， 我带来了
这个到我的网址并使用那个 而不是 保存在刷新这里 让
一定要确保我已经保存了一切 好
我在这里刷新你在那里知道什么 是使用的最大好处 基于类的视图就是这种继承
财产当然我不是 要结束了 这样做，但 我想
向 你 展示 四个 画报 插图目的
当你创造你 想要的 东西时 接受两个get方法的方法
和post方法所以我要去 提前并在这里抓住课程视图
将其粘贴并称之为课程创建 查看，我们在这里有我们的get方法
我会把它留在空的背景下 然后我们想要我们的post方法
因为当你真正创造 是你邮寄到后端 这样 我们想确保 我们有帖子
真的很简单， 我实际上并不需要 通过这里传递的 ID参数我们是
不使用 它， 当然还有 模板本身就是当然的
现在创建我想引入我的表格 这是来自表单导入和名称 它是课程模型形式，我想
实际上在两个地方初始化它 正确的 一个是get方法会说的
形式等于课程模型形式 确保它就像 那样 空
然后在我的上下文中我会有 通过的形式， 因为我的
创建模板有需要，所以我们 说这个让我们把它 带到我们的网址
并将其添加为路径
好吧，到目前为止我们真的很简单 提前进入，我们看到了
标题在这里好吧如果我输入一些东西 出来并点击保存 它似乎不是
事实上没有任何事情发生 确实发生了因为我们的观点
接受发布数据， 但它没有 什么都有 它所以我们 要做的
来到这里 并抓住请求 发布任何 数据，所以再次 发送
方面，我们把它在这里 就像 那好了，所以这会让我
实际上 有 表格数据来了 通过任何上下文是如此
让我们继续创造一些东西 它似乎已经发生了事情
让我回到我的课程中 没有什么在那里， 因为
当然 我还需要进来 如果表格有效，那么我会
形成不安全 ，这会给我 保存模型表单的实际方法
现在我想测试这个方法 确实这样的事实 渲染并 使用我 做的
一些所谓的现场 验证 ，以便在 我们可以实际验证的表格 干净的下划线无论哪个领域
name是字段名称 我正在验证是标题但它可能是
任何模型字段或任何其他字段 您可能会在使用的情况下表单字段
你忘记了， 所以我们要走了 领先进来， 实际上做到了 所以标题等于自我点清理
data dot git然后是字段名 当然，如果标题 更低 ，我们会说
等于像ABC 这样的东西， 我们会 只是应该继续和 提高的形式点
验证错误，这不是有效的 标题好，所以这只是在表格上
等级权利它没有做到 模型它只 在表格上做
这是你应该做的一个关键区别 记得显然我们不会去
触摸 它只是还没有，但是这是 关键 区别所以现在我们已经得到了 我
在我看来，我没有改变任何东西 继续前进， 尝试一下 在回来
在这里， 我只输入ABC点击保存，我看到了 它说这不是一个有效的标题
所以换句话说我们的帖子方法 正在做的是它实际上正在 通过
并初始化需要发生的事情 现在有一 件事 你
可能会考虑做，那是一次 这是你可能真的要有效 重新渲染表格，所以我说另一个
标题我点击它保存在那里 虽然我可能想创造 另一个
形式或其他课程或其他任何课程 我正在 创建正确的 ，所以我希望它
是 空的我希望它是原来的 状态 ，这样做， 所有我需要做的是
重新初始化实际表单本身
虽然我们的更新视图结合了 我们刚刚创造的东西也是
细节， 所以我们有这个更新视图 这里，我们有两种方法，这些方法
肯定 会 在那里 它们基本上都是一样的
他们现在正在做的就是渲染出来 形式所以它 真的不是很多
与创建 视图 不同 目前只有我自己的东西
想要实际调整就是这个 对象方法所以这个方法本身就是 要 重写 你会怎样
通常会为您的详细信息查看 会有一个叫做get的方法 对象，那么你可以在你的
各种方法，否则就是这样 正如我们在这里所做的那样，实际上就是这样 我们要把那个对象称为我
想要做的，然后 就是 非常 抢 我以前做的相同数据
这就是 这个获取对象 或者404相关的东西就在这里 这将抓住那个细节
抓住ID，我们只是自己做那个关键字 获得ID的那些显然是那些
即将发生的关键字参数 通过我们的网址， 就像我们在这里看到的
和我们现在 的问题 是一个整数 ID的名称， 实际上 这将 是
抓住那个对象给我们所以我只是 继续说obj等于
没有，这将抓住那个对象 现在我们内部有一些对象
上下文所以这将适用于 我们的 get方法以及我们的post方法吧
会有那个对象，如果我们 看看 我们的模板，它是一个组合
该 详细视图和 创建视图 形式，现在我们要做的是
实际更新这个项目，所以我们有 这个项目我需要做的就是通过
它作为一个实例 ，以我的形式 实例是obj 而我想拥有
也到这里 除了 请求点帖所以这是抓住
将数据与该实例一起发布 这是初始化，期待看到
如果它是有效的，如果它是，那么它会 为我保存一切 ，然后终于
我的模板有post和的方法 形式真的 没有改变 所以让我们
回到这里，让我们来看看 我有我的更新视图这里没了，我们得到
上下文错误所以我们要确保 我们有上下文定义的那个 这就在这里 ，实际上不应该
不要有 一点错误对不起 关于那个 好， 所以 我们 回到这里
一个你好世界我会改变它 打招呼，我会点击保存 它改变 它
你好， 我回到 详细视图 如果我回去，它仍然是你好 更新视图，并更改为ABC和它
保存它现在再次 进行验证 你可能会看到这是
多余的代码，就是这样 因为我们必须如何做到这一点
细节我们开始做的事情不是 冗余代码，但实际上就在这一点上
就像你不妨 使用它一样 泛型类 的脸认为 ， 内置
同学们 认为我们已经走了 在右边所以我的意思是 这样的
更清洁 ， 更 简单但想法 这里真的很明白这是
它的原始版本
继续关注更新的想法 查看我们有这个删除视图吧
几乎完全相同， 除非我们没有 需要带来的形式 ，然后
我们 要做的最后一件事实际上是 有一个重定向所以我们实际上删除 那个 post方法 上 的对象 然后
导入后将其重定向到某处 重定向，当然还有我的 网址
更新，然后在我的一边 模板本身这就是形式
在那里我只是渲染出这个原始形式 正如我们所见，我们 想要删除 相反，这里的想法是
我们提出了这种确认 消息，然后发布该消息
说是的，一旦你这样做我们确认 发布消息，然后你 实际删除
那个项目让我们回去看看 看看我将要进入的课程
当然，3删除和我们走 这样 我们确实想要 删除 另一个 课程 标题我们说是，它删除它重定向
真的很简单， 但这是原始的 这样做的方式
混合是其中一部分原因 同学的意见真是太好了
混入的作用是它可以让我们 扩展 带有一些新代码 的基于类的 视图
让我们来看看我要说的话 是课堂， 我们称之为课程
对象混合在一起，它只需要 对象作为默认对象只是 一个
Python 对象，然后我们就要去了 提前并说我们会给它 模型
名称或模型类或只是模型 它会让它成为无人和他们
将做一个名为get object和的方法 然后我们将返回与之相关的内容
我们 之前 其实 已经看到了 我们 将在这里返回， 所以我们有
我们的目标在这里，而不是 当然 我们只做自我点模型和
当然默认本身就是 当然所以我们就这样离开
默认所以现在这个已经开始了 接下来就是 让我们继续吧
并且只是说URL查找或者你知道 简单地查找，这将是 等于身份证，所以我现在可以
只是将 其改为自我点 查找好，所以这就是它
这 将有助于 我减少冗余 我的代码里面 所以我可以抓住它
对象混入并将其带入我的 删除并完全摆脱
因为它 现在得到对象方法 实际上 在这里 工作 是正确的
这里将打电话给混合 版本，并且希望确保 你先把混合 结束 ，然后是
经典观点或 最后一节课 然后我们可以为更新做同样的事情
我们可以为创造或做同样的事情 实际上我们并不需要它
创造但我们也不需要它 列表然后最后细节好吧
的对象，而不是到这里的是 所有这些我们只会做上下文 object 等于单元格类型get对象
因为剩下的就是 这样 按照我们的预期处理， 这样就 可以了
提出这个错误 ，如果它不存在 就这样 ， 它是要查找由
在该场 该 查找是要去必须相同 我们在这里得到的就是这样
这让事情变得 更多了 挑战这样的查找
所以我会把它留给 身份证，但是 这里的一般想法 是 我们愿意
在理论上能够 改变什么 查找将是，但在我的情况下，我只是
要把它留 在ID身上，但那就是 这实际上是如何混合的
实际上就像这样工作所以现在 我已经完成了所有这些让我们继续前进
看看里面的课程 第一个
仍在工作更新仍在工作 删除仍然有效
所以我们现在减少了代码量 我们通过创建 自己的 mixin
当然，你看，我们可以把 它 更复杂的，一旦你使它 更
复杂然后我们的课堂评论是均匀的 那更有超级动力
[音乐]