Python Flask 的 reqparse.RequestParser() 中的特殊字符
Special characters in Python Flask's reqparse.RequestParser()
添加参数时如下
self.request_parser.add_argument(
name='address',
required=True,
type=str,
help="Needs argument: 'address' - The address"
)
其中 self.request_parser 是 reqparse.RequestParser()
的一个实例,如果我的请求是 {'address': 'Gyvelvej'}
,它可以很好地工作,但是只要我添加特殊字符 æ 和 {'address': 'Torpevænget'}
一样,应用程序抛出一个 400 BAD REQUEST,指出缺少 address
。
在那种情况下,当打印 request.data
时产生 {"address":"Torpevænget"}
,所以它存在,但显然不可用于 reqparse。
有什么方法可以让它工作吗?
我正在通过 AngularJS 资源发送请求,我不想更改该代码,因为我希望此应用程序与多个不同的客户端协作。
编辑: 下面回答
在我用 python-unicode
标记问题后,我自己找到了答案
将类型更改为 unicode
可以解决问题,即
self.request_parser.add_argument(
name='address',
required=True,
type=unicode,
help="Needs argument: 'address' - The address"
)
添加参数时如下
self.request_parser.add_argument(
name='address',
required=True,
type=str,
help="Needs argument: 'address' - The address"
)
其中 self.request_parser 是 reqparse.RequestParser()
的一个实例,如果我的请求是 {'address': 'Gyvelvej'}
,它可以很好地工作,但是只要我添加特殊字符 æ 和 {'address': 'Torpevænget'}
一样,应用程序抛出一个 400 BAD REQUEST,指出缺少 address
。
在那种情况下,当打印 request.data
时产生 {"address":"Torpevænget"}
,所以它存在,但显然不可用于 reqparse。
有什么方法可以让它工作吗?
我正在通过 AngularJS 资源发送请求,我不想更改该代码,因为我希望此应用程序与多个不同的客户端协作。
编辑: 下面回答
在我用 python-unicode
标记问题后,我自己找到了答案将类型更改为 unicode
可以解决问题,即
self.request_parser.add_argument(
name='address',
required=True,
type=unicode,
help="Needs argument: 'address' - The address"
)