我见过简单的 wsgi 应用程序Hello World
在网页上显示一个或一个 PNG 图像(但不是两者)。
第一页使用'Content-type', 'text/html; charset=utf-8'
,第二页使用'content-type', 'image/png'
。
我如何编写一个简单的应用程序(使用 say wsgiref.simple_server.make_server
)发送两个text/html
和image/png
在同一个网页上?
基本上,如果我理解正确,你不能。您的 HTML 代码需要在其中包含一个<img src="path/url/to/image.png">
,并且该路径需要作为静态图像提供,或者是对同一 WSGI 服务器的第二个请求,它将为您提供一个带有适当Content-type
.
所以,让我详细说明。
假设您有一个http://server.com/mypage的请求路径,它将返回一个 HTML 并Content-type
设置text/html
为该 HTML,您将拥有:
<img src="http://server.com/myimage">
然后,在您的 WSGI 应用程序中,您实现了两条路由:
/mypage
给你一个 HTML 返回/myimage
这会给你一个PNG图像from wsgiref.util import setup_testing_defaults
from wsgiref.simple_server import make_server
def simple_app(environ, start_response):
setup_testing_defaults(environ)
path = str( environ['PATH_INFO']
headers = [('Server', 'Apache'),('Content-type', 'text/html')]
rsp = 'oops'
if '.html' in path:
rsp = some_html
if '.png' in path:
headers = [('Server', 'Apache'),('Content-type', 'image/png')]
rsp = some_png
start_response(status, headers)
return rsp
httpd = make_server('', 8008, simple_app)
print "Serving on port 8000..."
httpd.serve_forever()