python - 无法正确实现 wiki 搜索。按查询搜索结果不起作用
问题描述
我是编程新手,正在开发基于 Django 的 wiki 网站。我的问题是搜索。如果您键入 wiki 中已经存在的条目的确切名称,它会正确重定向到描述,但按查询搜索结果不起作用。返回错误:“解码到str:需要一个类似字节的对象,找到NoneType”这是我的代码:
视图.py
def search(request):
"""Search form."""
entries=(util.list_entries())
q = request.POST.get('q')
def list_str(entries):
str1=""
for i in entries:
str1 += i
return str1
if q.lower() in list_str(entries).lower():
return HttpResponseRedirect('wiki/'+q)
elif q.lower() not in list_str(entries).lower():
return render(request, "encyclopedia/nomatches.html")
else:
empty=[]
for title in entries:
if q.lower() in title.lower():
results=empty.append()
return render(request, "encyclopedia/results.html", {'res':results})
base.html
<form action="{% url 'search' %}" method="post">{% csrf_token %}
<input class="search" type="text" name="q" placeholder="Search Encyclopedia">
</form>
结果.html
{% extends "encyclopedia/layout.html" %} {% block title %} Search Results {%
endblock %} {% block body %}
<h1>Search results</h1>
<ul>
{% for result in res %}
<li>
<a href="{% url 'page' entry %}"> {{ result }} </a>
</li>
{% endfor %}
</ul>
{% endblock %}
还有一个 util.list_entries() 函数,它返回所有百科全书条目名称的列表。我选择不包含它,但如果需要它或任何其他代码,请告诉我。答案将不胜感激。:)
错误信息:
25/Apr/2021 13:24:22] "GET / HTTP/1.1" 200 1866
[25/Apr/2021 13:24:23] "POST /search HTTP/1.1" 302 0
Internal Server Error: /wiki/c
Traceback (most recent call last):
File "C:\Users\levan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\levan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\django\core\handlers\base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\levan\Documents\wiki\wiki\encyclopedia\views.py", line 19, in viewpage
"content":markdowner.convert(content),
File "C:\Users\levan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\markdown2.py", line 312, in convert
text = unicode(text, 'utf-8')
TypeError: decoding to str: need a bytes-like object, NoneType found
[25/Apr/2021 13:24:23] "GET /wiki/c HTTP/1.1" 500 68024
解决方案
推荐阅读
- azure-active-directory - 无法在 power bi 中使用访问令牌生成嵌入令牌
- r - position_dodge2 不适用于数据框中的多个值
- ms-access - MS Access - 仅在满足某些条件时创建查询以替换字符串
- java - Java中带有表情符号的字符串编码?
- delphi - 使用 Delphi 发送 Outlook 电子邮件
- reactjs - 发布请求不断询问已发送的数据
- android - 按钮侧面或搜索栏侧面有问题
- php - 是否可以使用 PHP stdClass 对象定义常量?
- python - 将框架拆分为列
- postman - Postman 测试用例 insetitive