Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写在网页上同时显示文本和图像的Python WSGI应用程序_Python_Wsgi - Fatal编程技术网

如何编写在网页上同时显示文本和图像的Python WSGI应用程序

如何编写在网页上同时显示文本和图像的Python WSGI应用程序,python,wsgi,Python,Wsgi,我见过一些简单的wsgi应用程序,它们在网页上显示helloworld或PNG图像(但不是两者都显示) 第一页使用'Content-type','text/html;charset=utf-8',第二个使用'content-type','image/png' 如何编写一个简单的应用程序(比如说wsgiref.simple\u server.make\u server),在同一网页上同时发送text/html和image/png 基本上,如果我理解正确的话,你不能。您的HTML代码中需要有一个,该

我见过一些简单的wsgi应用程序,它们在网页上显示
helloworld
或PNG图像(但不是两者都显示)

第一页使用
'Content-type','text/html;charset=utf-8'
,第二个使用
'content-type','image/png'


如何编写一个简单的应用程序(比如说
wsgiref.simple\u server.make\u server
),在同一网页上同时发送
text/html
image/png

基本上,如果我理解正确的话,你不能。您的HTML代码中需要有一个
,该路径需要作为静态图像使用,或者作为对同一WSGI服务器的第二个请求,该服务器将为您提供一个具有适当
内容类型的png raw

所以,让我详细说明一下

例如,您有一个请求路径,该路径将返回一个HTML,其中
内容类型
设置为
文本/HTML
,并且在该HTML中您将有:

<img src="http://server.com/myimage">

然后,在WSGI应用程序中,您可以实现两条路线:

  • /mypage
    返回HTML
  • /myimage
    返回PNG图像

  • httpd.serve_ever()

    只需扮演一下魔鬼代言人的角色。。。虽然不能在同一个网页上同时包含text/html和image/png,但可以发送一个text/html响应,该响应具有内联css样式,该样式使用数据URI方案在html中包含png的base64编码表示。哦,我的:)我想这是一个非常有创意的实现,可以工作,我不会马上想到那件事。但我不确定是否有人希望将其作为标准实现,而不是作为学术练习。事实上,它在生产中非常有用。我认识的许多人都有构建/部署脚本,这些脚本使用数据URI将通常使用的较小图像粘贴到CSS中,以简化内容交付和缓存。它可以节省一些不一定在同一台服务器上的请求,从而从keepalive连接中获益,并在CDN上增加额外的计费。但是在这个用例场景的上下文中,这完全是一个学术上的黑客行为。我可以纠正。谢谢你的信息,我不知道!调查一下!这可能是一个伟大的战略。这里有一个很好的正面入门-请注意,这个问题特别提到了
    如何编写
    ,而不是
    为我提供一个
    ,所以这不是很有帮助。请添加更多关于其工作原因或方式的说明,而不仅仅是提供。
    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..."