提交空表单和奇怪的输出

2024-09-24 02:14:31 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的表格:

<form action = "/search/" method = "get">
    <input type = "text" name = "q">
    <input type = "submit" value = "Search">
</form>

我的观点是:

^{2}$

当我试着输入一些东西时,一切都很好,除了奇怪的“u”字。例如,当我输入asdasda时,我得到输出You searched for: u'asdsa'。另一个问题是,当我提交一个空表单时,输出只是u'',而它应该是“yousubmittedanemptyform:(”)。我在读“Django书”,1.x.x版本,这是一个例子。。在


Tags: textnameforminputsearchgetvaluetype
3条回答

对于第一个问题,请尝试使用%s,而不是%r。您所做的是“原始”格式化,当字符串是unicode时,它告诉您这一点。普通字符串格式将只复制不带“u”或引号的值。在

对于第二个问题,文本输入在字典中总是有键。不要使用if语句,请尝试:

if request.GET['q'] != "":

测试字符串是否为空。在

“奇怪的u”是一个unicode字符串。你可以在这里阅读:http://docs.python.org/tutorial/introduction.html#unicode-strings

我猜自从用户按下submit,你会得到一个请求,它有一个空的q值(u''),因为用户没有输入任何东西。这很有道理,对吧?您应该更改if语句以检查此空unicode字符串。在

“q”出现在请求.GET字典表单提交后,它恰好是空的。尝试此操作,以在提交空查询时显示错误消息:

if 'q' in request.GET and request.GET['q'] != '':

相关问题 更多 >