如何解决如何从表单获取数据并将其存储在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 举报,一经查实,本站将立刻删除。