Python 没有找到Django页面

Python 没有找到Django页面,python,django,web,Python,Django,Web,views.py def search_author(request): if 'q' in request.GET and request.GET['q']: q = request.GET['q'] authors =User.objects.filter(username=q) return render_to_response('search_results.html', {'authors': author, 'query': q})

views.py

def search_author(request):
   if 'q' in request.GET and request.GET['q']:
    q = request.GET['q']
    authors =User.objects.filter(username=q)
    return render_to_response('search_results.html',
        {'authors': author, 'query': q})
   else:
    return HttpResponse('Please submit a search term.')
def search_form(request):
    return render_to_response('search_form.html')
url.py

url(r'^search_author$',app.views.search_author),
url(r'^search_form$', app.views.search_form)
search_form.html

{% extends "app/layout.html" %}
{% block content %}

<form action="/search_author/" method="get">
    <input type="text" name="q">
    <input type="submit" value="Search">
</form>
{%extends“app/layout.html”%}
{%block content%}
search_results.html

{% extends "app/layout.html" %}
{% block content %}


<p>You searched for: <strong>{{ query }}</strong></p>

{% if authors%}
   <p>Found {{ authors|length }} author{{ authors|pluralize }}.</p>
   <ul>
      {% for author in authors %}
      <li>{{ author.username }}</li>
      {% endfor %}
   </ul>
{% else %}
    <p>No authors matched your search criteria.</p>
{% endif %}
{%extends“app/layout.html”%}
{%block content%}
您搜索了:{{query}

{%if作者%} 找到{authors | length}}作者{{authors | pluralize}

    {作者中的作者%}
  • {{author.username}
  • {%endfor%}
{%else%} 没有与您的搜索条件匹配的作者

{%endif%}
loginpartical.html

{% if user.is_authenticated %}
<form id="logoutForm" action="/logout" method="post" class="navbar-right">
{% csrf_token %}
<ul class="nav navbar-nav navbar-right">
    <li><span class="navbar-brand">您好 {{ user.username }}!</span></li>
    <li><a href="search_form">查询作者</a></li>
    <li><a href="upload_book"> 发布旧书</a></li>
    <li><a href="user_book_detail" >查看我的书籍</a></li>
    <li><a href="javascript:document.getElementById('logoutForm').submit()">    登出</a></li>
</ul>
{%if user.u经过身份验证%}
{%csrf_令牌%}
  • 您好 {{user.username}}

当我点击查询作者' 在主页中,错误显示为 找不到页面(404) 请求方法:获取 请求URL:


有人能帮我解决我的问题吗?提前谢谢

这是因为你的正则表达式模式


/search\u form/
与指定的
^search\u form$
不同。映射到
/search\u form
(无尾随斜杠)。要使其成为
/search\u form/
,只需使用
^search\u form/$

这是因为你的正则表达式模式


/search\u form/
与指定的
^search\u form$
不同。映射到
/search\u form
(无尾随斜杠)。要使其成为
/search\u form/
,只需使用
^search\u form/$

我认为您给模板的路由错误

在settings.py中,您可以这样给模板目录路由

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

然后从主应用程序文件夹-->模板文件夹加载模板。 可以在视图中直接调用模板

如果您将模板保存在templates文件夹中的另一个文件夹中,则需要为该文件夹提供模板路由

例如: 您已将模板保存在主应用文件夹-->模板-->应用文件夹中。 然后,您必须将路由指定给app文件夹

像这样:

def search_form(request):
   return render_to_response('app/search_form.html').

试试看

我认为您给模板的路由错误

在settings.py中,您可以这样给模板目录路由

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            'django.template.context_processors.debug',
            'django.template.context_processors.request',
            'django.contrib.auth.context_processors.auth',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},
]

然后从主应用程序文件夹-->模板文件夹加载模板。 可以在视图中直接调用模板

如果您将模板保存在templates文件夹中的另一个文件夹中,则需要为该文件夹提供模板路由

例如: 您已将模板保存在主应用文件夹-->模板-->应用文件夹中。 然后,您必须将路由指定给app文件夹

像这样:

def search_form(request):
   return render_to_response('app/search_form.html').


试试看

保存模板的位置?app/templates/appIn settings.py文件,为模板目录设置的路径。我的意思是你像这样设置'DIRS':[os.path.join(BASE_DIR,'templates')。这个?“DIRS':[os.path.join(BASE_DIR,'templates)]我已经在下面发布了答案,请尝试将模板保存在哪里?app/templates/appIn settings.py文件,您为模板目录设置的路径。我的意思是你像这样设置'DIRS':[os.path.join(BASE_DIR,'templates')。这个?“DIRS':[os.path.join(BASE_DIR,'templates)]我已经在下面发布了答案,请尝试更新。查看新的更改。是的,我试过了,但还是出现了一个新错误:TemplateDoesNotExist at/search\u form/search\u form.htmlTemplateDoesNotExist at/search\u form/这是因为Django找不到您的模板。您确定在设置文件中配置了模板目录吗?请参阅@neelima的postateded。查看新的更改。是的,我试过了,但还是出现了一个新错误:TemplateDoesNotExist at/search\u form/search\u form.htmlTemplateDoesNotExist at/search\u form/这是因为Django找不到您的模板。您确定在设置文件中配置了模板目录吗?请参阅@neelima的帖子