WTForms 以 unicode 格式从表单中引入数据
Posted
技术标签:
【中文标题】WTForms 以 unicode 格式从表单中引入数据【英文标题】:WTForms bringing in data from form in unicode formating 【发布时间】:2015-11-24 10:37:27 【问题描述】:由于某种原因,WTForms 以 unicode 格式而不是正常格式获取信息。过去的代码可以正常工作,但重新启动时它就坏了。
flask 视图中的错误:
类型错误
TypeError: 'unicode' 对象不可调用
控制台报错:
Traceback(最近一次调用最后一次):
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1836 行,在 call
return self.wsgi_app(environ, start_response)
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1820 行,在 wsgi_app 中
response = self.make_response(self.handle_exception(e))
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1403 行,在 处理异常
reraise(exc_type, exc_value, tb)
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1817 行,在 wsgi_app 中
响应 = self.full_dispatch_request()
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1477 行,在 full_dispatch_request 中
rv = self.handle_user_exception(e)
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1381 行,在 handle_user_exception 中
reraise(exc_type, exc_value, tb)
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1475 行,在 full_dispatch_request 中
rv = self.dispatch_request()
文件“/Library/Python/2.7/site-packages/flask/app.py”,第 1461 行,在 dispatch_request 中
返回 self.view_functionsrule.endpoint
文件“/Users/marcellobachechi/Desktop/RMP/server.py”,第 72 行,打招呼
用户 = form.song.data()
TypeError: 'unicode' 对象不可调用
代码为:
class PickASong(Form):
song = TextField(u'Song title', validators=[DataRequired()])
form = PickASong(csrf_enabled=False)
if form.validate_on_submit():
user = form.song.data()
HTML:
<form action="" method="post" name="login">
<p>
form.song(size=20)
<input type="submit" value="Search!"></p></p>
form.song(size=20)
</form>
【问题讨论】:
【参考方案1】:删除form.song.data
之后的括号,因为它已经是一个Unicode字符串。
【讨论】:
太棒了。我已经坚持了 2 天了!以上是关于WTForms 以 unicode 格式从表单中引入数据的主要内容,如果未能解决你的问题,请参考以下文章