Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.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_Indexing_Set_Main - Fatal编程技术网

Django如何设置主页面

Django如何设置主页面,django,indexing,set,main,Django,Indexing,Set,Main,我想为我的应用设置主页面或索引页。 我尝试在settings.py中添加MAIN_页面,然后创建一个返回MAIN_页面对象的MAIN_页面视图,但没有成功 另外,我尝试在url.py中添加一个声明,如 (r'^$', index), 其中index应该是根目录上index.html文件的名称(但显然不起作用) 在Django网站中设置主页的最佳方式是什么 谢谢 您可以使用通用视图功能: # in your urls.py ... ... url(r'^faq/$', 'django.

我想为我的应用设置主页面或索引页。 我尝试在settings.py中添加MAIN_页面,然后创建一个返回MAIN_页面对象的MAIN_页面视图,但没有成功 另外,我尝试在url.py中添加一个声明,如

(r'^$', index),
其中index应该是根目录上index.html文件的名称(但显然不起作用)

在Django网站中设置主页的最佳方式是什么

谢谢

您可以使用通用视图功能:

# in your urls.py ...
...
url(r'^faq/$', 
    'django.views.generic.simple.direct_to_template', 
    { 'template': 'faq.html' }, name='faq'),
...

如果您想引用静态页面(而不是经过任何动态处理),可以使用
django.views.generic.simple
中的
direct\u to\u模板
查看功能。在您的URL配置中:

from django.views.generic.simple import direct_to_template
urlpatterns += patterns("",
    (r"^$", direct_to_template, {"template": "index.html"})
)

(假设
index.html
位于一个模板目录的根目录下。)

执行此操作的首选新方法是使用
TemplateView
类。如果您想从
direct\u移动到\u模板,请参见此

在主
url.py
文件中:

from django.conf.urls import url
from django.contrib import admin
from django.views.generic.base import TemplateView

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # the regex ^$ matches empty
    url(r'^$', TemplateView.as_view(template_name='static_pages/index.html'),
        name='home'),
]

注意,我选择将任何静态页面链接
index.html
放在
templates/
目录中自己的目录
static\u pages/

以防有人搜索更新版本的答案

from django.urls import re_path
from . import views

urlpatterns = [
    re_path(r'^$', views.index, name='index')
]
在您的
视图中.py

def index(req):
    return render(req, 'myApp/index.html')

此解决方案已被弃用。请参见下面ryanjdillonIt的回答中解释的首选方法中选择的答案不清楚这里的
static\u pages/index.html
路径是什么。我无法复制此内容,它会导致“找不到模板”错误。我通过1)在主
url.py
中设置
app\u name='myapp'
,2)将
myapp
添加到主
settings.py
中安装的
应用程序,3)将我的模板放置在
myapp/templates/myapp/index.html
,解决了此问题,4)更新视图以使用
template\u name='myapp/index.html'