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

时间:2014-01-16 18:14:16

标签: django django-templates

我在Django文档中找不到这个信息,但我确定它在那里,我只是很新,不知道要搜索的条件/等。

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

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

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

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

我尝试将该文件复制到test.html,但是当我在浏览器中浏览到test.html时,出现404错误(如果我转到index.html,我也会收到错误)。因此必须有其他东西将模板映射到页面,但如果我能找到它,我会被淹没。我是否需要更多访问管理区域,还是可以使用SFTP执行某些操作?我也有SSH访问权限但无法在线执行任何步骤为Django创建一个新的超级用户帐户。

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

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

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

2 个答案:

答案 0 :(得分:1)

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'),
)

看一下这个链接。 https://docs.djangoproject.com/en/dev/topics/http/urls/

答案 1 :(得分:1)

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

上述所有意味着url路径(即www.example.com/path/to/page)与服务器硬盘上的文件(即/ server / path / to / page)之间没有直接关联。当请求进入时,它都是由Django的引擎动态执行的。

如果您想知道要为特定路径生成哪个视图,请按regex处的urls.py直到找到您要查找的路径。然后打开该url的视图,并在其中查看正在呈现的template

阅读doc URL Dispatcher是开始了解这一点的好点。

希望这有帮助!