使用请求检查损坏的链接后,Django网站加载缓慢

时间:2018-01-03 13:14:18

标签: python html mysql django web

我的网站提供了有关不同服务器的deatails。 我已经使用请求来检查哪个服务器ILO IP没有通过http工作,哪个不工作。

使用请求后..页面加载速度超慢!

我的服务器检查许多服务器的ILO Ips,如果服务器坏了,它会将IP显示为文本,如果没有,则显示到ILO的链接(IP)。

您知道如何让服务器加载速度更快吗? 感谢..

models.py - 来自django.db导入模型

导入请求

class serverlist(models.Model):
    ServerName = models.CharField(max_length = 30,blank=True)
    Owner = models.CharField(max_length = 50,blank=True)
    Project = models.CharField(max_length = 30,blank=True)
    Description = models.CharField(max_length = 255,blank=True)
    IP = models.CharField(max_length = 30,blank=True)
    ILO = models.CharField(max_length = 30,blank=True)
    Rack = models.CharField(max_length = 30,blank=True)
    Status = models.CharField(max_length = 30,blank=True)

    def checkUrlAvailable(self):
        ip_check = 'https://' + self.ILO
        resp = requests.head(ip_check,allow_redirects=False)
        if resp.status_code == 303:
            return True
        else:
            return False

index.html -

{% if server.checkUrlAvailable is True %}

      <a href="//{{ server.ILO }}"> {{ server.ILO }} </a>
            {% else %}
                {{ server.ILO }}


            {% endif %}

1 个答案:

答案 0 :(得分:1)

列表中有多少台服务器?我不会像这样在python中进行可用的检查。但是使用javascript,所以你可以启动多个异步检查,一个状态代码更改链接上的类或者甚至“禁用”锚元素。使用JQuery ajax(类型HEAD)。

否则,我会对您的checkUrlAvailable函数进行一些缓存。但这并没有改变这样一个事实:做一个请求需要一些时间,甚至是HEAD。因此,在大型列表(以及许多请求)上,它开始加起来。