Flask字体服务入门

2021-01-15  本文已影响0人  非你不可_a036

1.创建Flask项目

可以直接创建一个py文件,导入并声明,也可以使用pycharm创建。

from flaskimport Flask

app = Flask(__name__)

@app.route('/half_map_get')

def half_map():

    print("11")

if __name__ =='__main__':

    app.run()

2.修改端口

app.run(host='127.0.0.1', port=8088)

3.接收参数

参数需要从request中获取,因此导入from flask import request

获取参数的方法:

request.get_json().get('reverse', False)   //从JSON中获取参数

request.form.get('reverse', type=bool, default=False)   // 从表单中获取参数,type=bool慎用,此处等同于bool(str())

request.form.to_dict()     //  和request.form.get 差不多

request.values           // 未使用过,下次补充

request.args          //获取GET请求参数

4.附件上传与接收

上传:resp = requests.post(url=url, data=data, files={'upfile': file})        // file为二进制

接收:file = request.files['upfile']

5. fonttools识别字体

font = TTFont(file)

// font.getBestCmap()   //获取cmap映射关系

// 观察检测发现映射关系一半为正常字体映射,一半为混淆字体映射,但是先后顺序可能不同(正常字体在前一半,混淆字体在后一半,也可能相反)

font_map = dict(zip(list(font.getBestCmap().keys())[len(list(font.getBestCmap().keys())) // 2:], list(font.getBestCmap().keys())[:len(list(font.getBestCmap().keys())) // 2]))
result_map = {chr(int(v)): chr(int(k)) for k, v in font_map.items()} if reverse else {chr(int(k)): chr(int(v)) for k, v in font_map.items()}

上一篇下一篇

猜你喜欢

热点阅读