flask 提供文件下载

@app.route(‘/download/<filename>’) def download_file(filename): defsend_file(): store_path = os.path.join(UPLOAD_FOLDER,filename) withopen(store_path, ‘rb’) as targetfile: while1: data = targetfile.read(1 * 1024 * 500) # 每次读取1MB (可用限速) ifnot data: break yield data response = Response(send_file(), content_type=’application/octet-stream’) response.headers[“Content-disposition”] = ‘attachment; filename=%s’ % filename # 如果不加上这行代码,导致下图的问题 return response

解决安装python3.7.4报错Can”t connect to HTTPS URL because the SSL module is not available

简述 从官网下载了Python3.7.4,直接编译安装后,使用pip3出现了报错信息: Can’t connect to HTTPS URL because the SSL module is not available 错误原因 在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl。 image.png 而本地的openssl依然是1.0.1e的。 1 2 [root@localhost ~]# openssl version OpenSSL 1.0.1e-fips 11 Feb 2013 解决方法 上openssl官网下载1.0.2或者1.1之后的openssl包,编译安装。我选择的是1.0.2r。 1 2 3 4 5 6 [root@localhost ~]# wget http://www.openssl.org/source/openssl-1.0.2r.tar.gz [root@localhost ~]# tar zxvf openssl-1.0.2r.tar.gz [root@localhost ~]# ./config –prefix=/opt/openssl1.0.2r –openssldir=/opt/openssl1.0.2r/openssl no-zlib [root@localhost ~]# make …

python3中pip3安装出错,找不到SSL的解决方式

最近在Ubuntu16.04上安装Python3.6之后,使用pip命令出现了问题,提示说找不到ssl模块,出现错误如下: 1 2 3 4 pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. Could not fetch URL https:*******: There was a problem confirming the ssl certificate: Can’t connect to HTTPS URL because the SSL module is not available. – skipping 本人安装Python3.6的操作如下: 1 2 3 4 5 …

python检查xml格式正确性

有时帮同事定位问题,一顿分析之后才发现是同事修改xml配置文件,把文件格式改错了,解析失败导致的故障。 低级错误浪费大量时间啊~ 一个简单的办法是把xml文件拖动到IE浏览器中打开,如果文件格式不正确的话,IE就会提示。 然而有时文件在服务器上,导到Windows上,再用IE打开,还是略繁琐了一些,因此用python写了一段,来验证xml格式的正确性。 不得不说,sax方式解析xml挺繁琐,但是用来验证xml还是出乎意料的简短。 import sys from xml.sax.handler import ContentHandler from xml.sax import make_parser def parseFile(fileName): parser = make_parser() parser.setContentHandler(ContentHandler()) parser.parse(fileName) if __name__ == ‘__main__’: args = sys.argv try: filename = args[1] except Exception: print(‘\tERROR: no input file!’) try: parseFile(filename) print(‘\n\t:), %s is OK!\n’ % filename) except Exception as e: