微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从表单获取数据并将其存储在django中的变量中

如何解决如何从表单获取数据并将其存储在django中的变量中

这是views.py中的表单类:

class SearchForm(forms.Form):
    query = forms.CharField(label='Search',max_length=10)

该表单将添加为以下相关页面

<form action="/encyclopedia/search.html" method="get">
                <input class="search" type="text" name="q" placeholder="Search Encyclopedia">
                {{ form }}
</form>

我试图通过两种方式实现视图功能: 首先:-

def search(request):
form = SearchForm(request.GET)
if form.is_valid():
    query = form.cleaned_data['query']
else:
    query = None
return HttpResponse(query)

秒:-

def search(request):
form = SearchForm(request.GET)
query = request.GET.get("query")
return HttpResponse(query)

给定的HttpResponse只是为了检查我是否已成功在变量“ query”中获取所需的数据。两种方式都只返回None。 我看到了从Internet上的POST获取数据的方法。我在这里想念什么吗??? 我已经尝试了很多东西。 有人可以只写一个函数,使用GET方法从表单中获取数据吗?我会很感激的。我不知道现在该怎么办......

解决方法

参数名称为q,因为HTML组件为:

<input … name="q" … >

因此,您可以通过以下方式访问它:

def search(request):
    query = request.GET.get('q')
    return HttpResponse(query)

或者您可以使用Form

class SearchForm(forms.Form):
    q = forms.CharField(label='Search',max_length=10)

并与之合作:

def search(request):
    form = SearchForm(request.GET)
    if form.is_valid():
        query = form.cleaned_data['q']
    else:
        query = None
    return HttpResponse(query)

注意:如section on Design your urls中所述。

Django鼓励使用精美的URL设计,并且不要在URL中添加任何残篇,例如.php或.asp。

因此,您可能希望删除路径中的.html后缀。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。