Python 如何在Django中处理带有“提交”的文本;邮政「;或;获得;方法从HTML?

Python 如何在Django中处理带有“提交”的文本;邮政「;或;获得;方法从HTML?,python,html,django,Python,Html,Django,我有一个在Django中构建Wiki页面的项目,我需要处理从搜索字段发送的单词,并在屏幕上显示其信息,以防单词与存储的信息匹配。为此,我想从下面的html模板发送一个带有“POST”方法的参数 <form action="{% url 'wiki:index' %}" method="post"> {% csrf_token %} <input class=

我有一个在Django中构建Wiki页面的项目,我需要处理从搜索字段发送的单词,并在屏幕上显示其信息,以防单词与存储的信息匹配。为此,我想从下面的html模板发送一个带有“POST”方法的参数

<form action="{% url 'wiki:index' %}" method="post">
          {% csrf_token %}
                    
          <input class="search" type="text" name="q" placeholder="Search Encyclopedia">                    
          <input type="submit">
</form>
此文件包含以下标题语句:

from django import forms
from django.http import HttpResponseRedirect
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.urls import reverse

from . import util
“Languages”函数依次处理“util.py”代码的get_entry(title)函数

我在文件“url.py”中指明了以下路径

urlpatterns=[
路径(“,views.index,name=“index”),
路径(“wiki/”,views.languages,name=“languages”),
]
这是为了显示在“entries”目录中找到的“file.md”的内容,其名称与html模板的搜索字段中键入的文本匹配。但是,执行此操作时,会显示以下错误:

NoReverseMatch at /
Reverse for 'languages' with no arguments not found. 1 pattern(s) tried: ['wiki/(?P<title>[^/]+)$']
Request Method: POST
Request URL:    http://127.0.0.1:8000/
Django Version: 3.1.2
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'languages' with no arguments not found. 1 pattern(s) tried: ['wiki/(?P<title>[^/]+)$']
NoReverseMatch位于/
找不到参数的“语言”的反转。尝试了1个模式:['wiki/(?P[^/]+)$']
申请方式:邮寄
请求URL:http://127.0.0.1:8000/
Django版本:3.1.2
异常类型:NoReverseMatch
异常值:
找不到参数的“语言”的反转。尝试了1个模式:['wiki/(?P[^/]+)$']
我试图使用参数“form”,但可能我不知道如何使用它,也没有达到目标。
我希望您能帮助我修改Django和html中的函数,以便正确使用函数“get_entry(title)”,并显示与键入信息匹配的文件“.md”的内容。

由于您在路径中指定了name=“languages”,请检查main url.py,并查看您的项目中是否有安装应用程序名称,并检查是否可以使用app_name.url\u name访问,就像您的app name是app1一样,然后查看是否可以访问app1.languages。我确认文件“url.py”包含app name“app_name=“wiki”。至于您的建议,我不知道我是否理解或做错了,但连接被拒绝。在主文件中是“url.py”我添加了一行:path(“”,include(“app1.url”)),并从index函数中修改了重定向到“languages”函数,如下所示:return redirect(“app1.languages”),但连接被拒绝。请确认这是否是您建议的,或者您最好尝试其他方法。return redirect(“wiki:languages”)此处您正在执行正常重定向,而languages希望调用带有参数的语言url。尝试通过将从post获得的输入作为参数传递到url来执行重定向。希望这有助于Syes,这是缺少的,但我不知道如何发送该参数。我尝试从html模板发送参数“q”,如下所示:在Django函数中,我有:title=request.POST[“q”],但错误总是一样的。我从html模板中了解到,必须以以下方式发送参数(word1.word2),例如:person.id,或者它应该是如下所示:您知道如何构建该参数,或者是否需要在Django代码中添加其他内容?
def get_entry(title):
    """
    Retrieves an encyclopedia entry by its title. If no such
    entry exists, the function returns None.
    """
    try:
        f = default_storage.open(f"entries/{title}.md")
        return f.read().decode("utf-8")
    except FileNotFoundError:
        return None
urlpatterns = [
    path("", views.index, name="index"),
    path("wiki/<str:title>", views.languages, name="languages"),
]
NoReverseMatch at /
Reverse for 'languages' with no arguments not found. 1 pattern(s) tried: ['wiki/(?P<title>[^/]+)$']
Request Method: POST
Request URL:    http://127.0.0.1:8000/
Django Version: 3.1.2
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'languages' with no arguments not found. 1 pattern(s) tried: ['wiki/(?P<title>[^/]+)$']