python - Tornado - Python : How to Disable Favicon. ico

标签 python tornado favicon

大家好,我刚刚制作了一个 python 程序,可以按文件格式打开我的文件并设置其缓存控制时间。但问题是我的代码采用 ico 格式,当我请求 jpg 文件时,它来自 favicon

这是我的代码:

#!/usr/bin/python
import tornado
import tornado.ioloop
import tornado.web
import sys , importlib
import os
import os.path
from urllib2 import Request, urlopen, URLError
from myconfig import *
import webbrowser
import time


conf2=locals()

if len(sys.argv) > 1:
    conf = sys.argv[1]
else:
    conf = 'dosya belirtilmedi'
    print conf

def check( str ):
    return conf2[str][0]
def check2( str ):
    return conf2[str][1]
def check3( str ):
    return conf2[str][2]

def do( str ):
    return len(str)
def calculate(str):
    if check3(str) == 'seconds':
        return 1
    elif check3(str) == 'minutes':
        return 60
    elif check3(str) == 'hours':
        return 60*60
    elif check3(str) == 'days':
        return 60*60*24
    elif check3(str) == 'weeks':
        return 60*60*24*7
    elif check3(str) == 'mounths':
        return 60*60*24*7*4
    elif check3(str) == 'years':
        return 60*60*24*7*4*12
    else:
        return 5000


class GetFileHandler(tornado.web.RequestHandler):
        def get(self,url):
                x={}
                f={}
                                path = sys.argv[1] + self.request.uri
                                data = self.request.uri
                x = data.split(".")
                                if data == '/':
                                        self.write("Ana Sayfa")
                elif len(x) > 1:
                        z=x[1]
                        f=check(z).split("/")
                        j=f[1]
                        print j
                        print do(j)
                        print do(html)
                                                if z in conf2:
                            self.set_header('Content-Type',check(z))
                            if (z in conf2 and do(j) != 3):
                                cal=calculate(z)
                                cal2=conf2[z][1]
                                total=cal*cal2
                                self.set_header('Cache-Control', 'max-age=%s, public' % total )

                                else:
                                self.set_header('Cache-Control', 'max-age=100, public')
                                print 100
                                                    if os.path.isfile(path) and os.access(path, os.R_OK):
                                with open(path, 'rb') as f:

                                                                y = f.read()
                                                                self.write(y)
                                                                self.finish()
                            else:
                                        webbrowser.open('http://ecommerceblog.mightymerchant.com/wp-content/uploads/2007/10/404-image.jpg')

                                            else:

                                                    self.write("YOK" + "=" + z)
                else:   
                        self.write("Dosya Formati Yok")



if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/(.*)", GetFileHandler),])
    application.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

这是我的配置文件:

<p></p>

<pre><code>jpg=["image/jpeg",23,"minutes"]
html=["text/html",30,"seconds"]
gif=["image/gif",3,"hours"]
png=["image/png"] 
</code></pre>

<p></p>

这是我的错误:


    ERROR:tornado.application:Uncaught exception GET /favicon.ico (127.0.0.1)
    HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', uri='/favicon.ico', version='HTTP/1.1', remote_ip='127.0.0.1', headers={'Accept-Language': 'en-US,en;q=0.8', 'Accept-Encoding': 'gzip, deflate, sdch', 'Host': 'localhost:8888', 'Accept': '*/*', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36', 'Connection': 'keep-alive', 'Referer': 'http://localhost:8888/im.jpg'})
    Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/tornado-4.3-py2.7-linux-x86_64.egg/tornado/web.py", line 1443, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "./w.py", line 60, in get
        f=check(z).split("/")
      File "./w.py", line 22, in check
        return conf2[str][0]
    KeyError: 'ico'
    ERROR:tornado.access:500 GET /favicon.ico (127.0.0.1) 0.48ms

image

这是我在浏览器上遇到的问题的图像。正如你所看到的,我只发送 jpg 请求,但总是有 favicon 请求(内容类型是 text/html)。我只想禁用它,或者删除它。我不明白原因。请帮助我谢谢。

最佳答案

浏览器正在请求favicon .

这会导致您的代码崩溃,这就是为什么您会看到 500状态码。

问题中的格式太明显了,无法查看,但解决方案是添加一个图标。这个答案here对网站图标主题有更多建议。

关于python - Tornado - Python : How to Disable Favicon. ico,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35911048/

相关文章:

Python ctypes.cdll.LoadLibrary 在 2.6.5 和 2.7.1 之间的工作方式不同

python - 如何提取元组的第一个元素,它是 Python 数据框中的一列?

python - 以 ABC 开头,然后是 B 和/或 C,并以 CBA 结尾的模式的正则表达式

php - Laravel 5.6 图标未显示

python - 使用 for 循环和 if 语句求根迭代

python - 导入错误 - Tornado 需要在 ubuntu 14.04 上更新 SSL 模块

nginx - 在 Ubuntu 10.04 上使用 Nginx 设置 Tornado 以供生产使用

python - 意外的 tornado.ioloop.PeriodicCallback 行为

webpage - 浏览器不请求 favicon.ico 的原因是什么?

javascript - 强制浏览器请求动态加载的图标