python wsgi 图片怎么处理

发布于 2021-11-25 08:14:48 字数 813 浏览 758 评论 7

初研究python

使用的是  Template(open(file)) 引入的 html, 在处理静态文件的时候蒙了

我对JS 和 css 使用的方法和 html类似, 就是响应的mime改一下., 但是图片就没办法了

js和css都是这样写的

def jsFile(environ, start_response):
	start_response('200 OK', [('content-type', 'text/javascript')])
	tpl = Template(Static(environ['PATH_INFO']))
	js = tpl.safe_substitute()
	return [js]
请教图片该怎么处理

def imgFile(environ, start_response):
	ext = environ['PATH_INFO'].split('.')
	for n in ext:
		mime = n
	m = [('content-type', 'image/'+mime)]	
	start_response('200 OK', m)	
	image = Image.open(os.getcwd()+environ['PATH_INFO'])
	return [image]



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

眼眸 2021-11-29 11:51:34

谢谢, 亲, 哪天来请你吃饭... 太帮忙了

本宫微胖 2021-11-29 11:51:23

StringIO 可以不需要,大文件读取还可以优化,下面是改进后的版本:

def imgFile(environ, start_response):
    ext = environ['PATH_INFO'].split('.')
    for n in ext:
        mime = n
    m = [('content-type', 'image/'+mime)]  
    start_response('200 OK', m)  
    
    image = open(os.getcwd()+environ['PATH_INFO'], "rb") 
    if 'wsgi.file_wrapper' in environ: 
        return environ['wsgi.file_wrapper'](image, 1024) 
    else: 
        return iter(lambda: image.read(1024), '')

恋你朝朝暮暮 2021-11-29 11:51:11

已经解决了, 刚刚有哥们回复的,他好像又删了

def imgFile(environ, start_response):
	ext = environ['PATH_INFO'].split('.')
	for n in ext:
		mime = n	
	m = [('content-type', 'image/'+mime)]	
	start_response('200 OK', m)	
	#image = Image.open(os.getcwd()+environ['PATH_INFO'])
	image = open(os.getcwd()+environ['PATH_INFO'], "rb")
	strio = StringIO.StringIO(image.read()).getvalue()
	return [strio]

酒几许 2021-11-29 11:32:41

读取文件,返回文件数据,不过大文件不要直接一次性读取,最好用yield,否则占用内存太大

天涯离梦残月幽梦 2021-11-29 07:35:11

给个栗子啊亲,正常的文件处理都是服务器来完成的,因为这里使用的是wsgi 所以需要手动设置

明月松间行 2021-11-29 03:59:12

手动设置下header,然后直接open文件,返回.read()?

秋意浓 2021-11-27 21:42:02

以前我是直接当文件处理的…没用PIL

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文