繁体   English   中英

python flask post数据编码

[英]python flask post data encoding

我有一个烧瓶方法,它将获取发布数据并进行查询,代码如下

@app.route('/register/search', methods=['POST'])
@cross_origin(origin='*')
def register_search():
    json_data = request.get_json()
    param = {}
    if 'startrow' in request.json:
        param['startrow'] = request.json['startrow']
    if 'endrow' in request.json:
        param['endrow'] = request.json['endrow']
    if 'company_name' in request.json:
        param['company_name'] = request.json['company_name']

我使用 angular 来做一个请求,并且 company_name 是 2 个汉字,但是 param['company_name'] 得到一个像这样的字符串 '\\xe4\\xb8\\xad\\xe6\\x96\\x87',我怎样才能从 param 中得到原始的汉字['公司名']

'\\xe4\\xb8\\xad\\xe6\\x96\\x87` 看起来像 utf8 编码的 unicode。 试试这个把它转换回unicode:

param['company_name'] = request.json['company_name'].decode('utf-8')

我想我有一个解决方案:

错误,如果我使用字符串 concat 进行这样的查询,我会遇到发布的问题:

sql = "select * from company where name like " + param['company_name']
cursor.execute(sql)

正确的

sql = "select * from company where name like %s"
cursor.execute(sql,("%"+param['company_name']+"%"))

使用准备好的语句,它会起作用

希望这可以帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM