我在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或观看列表的位置)?
答案 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是开始了解这一点的好点。
希望这有帮助!