我是金字塔新手。我使用python2.7、MSSQL、slqalchemy.MSSQL和gbk
字符集,我有很多旧数据。因此,我使用以下代码将前面的html更改为encode togbk
:
@view_config(route_name='g', renderer='json')
def my_view1(request):
print 2
print request.charset
print 1
print isinstance(request.params['one'], str)
if request.params['one']:
print request.params['one']
filters = (Bzjl.one == request.params['one'])
try:
two1 = DBSession.query(Bzjl).filter(filters)
except DBAPIError:
return Response(conn_err_msg, content_type='text/plain', status_int=500)
return Response(getjson(two1))
示例url:
http://127.0.0.1:6543/g?one='中国福建'
不返回行:{"records": 0, "total": 20, "rows": [], "page": 1}
最佳答案
金字塔支持请求工厂。你可以用这个来解码请求。
def request_factory(environ):
req = pyramid.request.Request(environ)
return req.decode(charset='gbk')
config.set_request_factory(request_factory)
这意味着在金字塔内传递的请求将使用gbk字符集。使用此字符集解码请求失败将导致UnicodeDecodeError异常,因此您可能需要向请求工厂添加额外的逻辑来处理这些事情。
关于python - Pyramid 可以将默认的request.charset从utf-8更改为gbk吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11060681/