Python 没有找到Django页面
views.pyPython 没有找到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})
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的帖子