Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django页面模板是如何分配给每个页面的?_Django_Django Templates - Fatal编程技术网

Django页面模板是如何分配给每个页面的?

Django页面模板是如何分配给每个页面的?,django,django-templates,Django,Django Templates,我在Django文档中找不到这个信息,但我肯定它在那里,我只是很新,不知道搜索什么术语/等等 如何将Django页面模板分配给每个页面? 我有一个Django站点的登录名,也有该站点的SFTP访问权限。我不认为我的Django登录名是超级用户/完全管理员,因为与其他CMS系统相比,界面似乎非常有限。我可以编辑页面、帖子和媒体库,但我看不到任何说明如何为每个页面分配模板的内容 例如,我有一个文件/mysite/templates/pages/index.html 我知道该模板用于主页,因为该模板上

我在Django文档中找不到这个信息,但我肯定它在那里,我只是很新,不知道搜索什么术语/等等

如何将Django页面模板分配给每个页面?

我有一个Django站点的登录名,也有该站点的SFTP访问权限。我不认为我的Django登录名是超级用户/完全管理员,因为与其他CMS系统相比,界面似乎非常有限。我可以编辑页面、帖子和媒体库,但我看不到任何说明如何为每个页面分配模板的内容

例如,我有一个文件/mysite/templates/pages/index.html

我知道该模板用于主页,因为该模板上有特定于主页的所有内容,并且我所做的更改显示在主页上

我尝试将该文件复制到test.html,但当我在浏览器中浏览到test.html时,我得到了404错误(如果我转到index.html,也会得到该错误)。所以一定有别的东西可以把一个模板映射到一个页面上,但如果我能找到的话,我就完蛋了。我是否需要更多访问管理区域的权限,或者我可以使用SFTP做些什么?我也有SSH访问权限,但无法在线按照任何步骤为Django创建新的超级用户帐户

编辑:感谢您的两个答案,在我完成这项工作后,我将接受最有帮助的答案。我没有views.py文件,但我认为它可能会为此路由使用额外的模块,我的url.py文件中有:

urlpatterns = patterns("",
    ("^admin/", include(admin.site.urls)),
    url("^$", "mezzanine.pages.views.page", {"slug": "/"}, name="home"),
    ("^", include("mezzanine.urls")),
)

这个“夹层”是否会改变答案(views.py或视图列表的位置)?

url.py是将url映射到返回呈现模板的方法的文件。本质上,您定义了url和一个方法,当有人访问该url时,将调用该方法,该方法将使用呈现的模板返回HTTP响应。这个映射称为urlpatterns。在下面的示例中,当有人访问您的网站/博客时,在博客应用程序中调用view.py,page方法,该方法将使用模板并使用特定信息呈现该模板

urlpatterns = patterns('',
    url(r'^blog/$', 'blog.views.page'),
    url(r'^blog/page(?P<num>\d+)/$', 'blog.views.page'),
)
urlpatterns=patterns(“”,
url(r“^blog/$”、“blog.views.page”),
url(r“^blog/page(?P\d+/$”,“blog.views.page”),
)
看看这个链接。

Django使用
url.py
文件将路径映射到视图。使用正则表达式解析此匹配。当找到匹配项时,Django执行关联的视图(通常在
views.py
中)。视图负责呈现路径所需的模板(通过在服务器硬盘上查找并加载模板)

上述所有内容都意味着url路径(即www.example.com/path/to/page)与服务器硬盘上的文件(即/server/path/to/page)之间没有直接关联。当收到请求时,Django的引擎会动态地执行这些操作

如果您想知道将为特定路径生成哪个视图,请按照
urls.py上的
regex
s操作,直到找到要查找的路径。然后打开该
url
的视图,查看它在哪个
模板中呈现

阅读博士的文章是开始了解这一点的好机会


希望这有帮助

谢谢,我更新了我的问题,包括一些额外的信息。如果你能检查一下我的编辑,那就太好了——你已经帮了很多人,所以不管怎样,谢谢!接受这个答案只是因为我认为这是第一个。两个答案都同样有用。现在我要去了解夹层,但至少我现在知道去哪里看了@实际上,为了公平起见,主持人首先回答说:)我很高兴我们能在任何方面帮助你。好的,谢谢,我改变了接受条件。我的屏幕在你的屏幕上显示“33分钟前(编辑28)”,在另一个屏幕上显示“36”。谢谢,我更新了我的问题,加入了一些额外的信息。如果你能检查一下我的编辑,那就太好了——你已经帮了很多人,所以不管怎样,谢谢!不客气。因此,从您的url模式来看,当您访问yourwebsite.com时,它与第二个url模式“^$”(在“.com/”之后是一个空字符串)相匹配,并调用此方法返回HTTP响应;mezzanine.pages.views.page。大致上,这在夹层应用程序的views.py中。希望这能有所帮助。我发现了夹层,现在明白了它是Django的另一个CMS/插件包,如果我想不出来,我应该问一个特定于此的问题。至少我知道Django(核心)是如何实现的很有用,这是一个很大的帮助。谢谢。对于未来的读者。如果您使用Mezzanine,您可以创建一个名为“test”的新页面/表单(例如),然后在pages/templates/下创建一个test.html文件,它将为该页面使用该模板。