我似乎无法让这个例子打印出"你什么都没提交!".每次我提交一份空表格时都会说:
你提交了:你''
代替:
你什么都没提交!
我哪里做错了?
views.py
def search(request):
if 'q' in request.GET:
message = 'You submitted: %r' % request.GET['q']
else:
message = 'You submitted nothing!'
return HttpResponse(message)
Run Code Online (Sandbox Code Playgroud)
模板:
<html>
<head>
<title> Search </title>
</head>
<body>
<form action="/search/" method="get" >
<input type="text" name = "q">
<input type="submit"value="Search"/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
tux*_*21b 34
打电话会/search/
导致"你没有提交任何内容",但/search/?q=
另一方面打电话会导致"你提交了你".
浏览器必须添加q=
即使它是空的,因为它们必须包括作为表单一部分的所有字段.只有在Javascript中执行某些DOM操作(或自定义javascript提交操作)时,您才会遇到此类行为,但前提是用户启用了javascript.所以你应该只测试非空字符串,例如:
if request.GET.get('q'):
message = 'You submitted: %r' % request.GET['q']
else:
message = 'You submitted nothing!'
Run Code Online (Sandbox Code Playgroud)
Dav*_*cic 14
q = request.GET.get("q", None)
if q:
message = 'q= %s' % q
else:
message = 'Empty'
Run Code Online (Sandbox Code Playgroud)