我的网站提供了有关不同服务器的详细信息。 我已使用请求来检查哪些服务器 ILO IP 无法通过 http 工作,哪些则不能。
使用请求后..页面加载速度非常慢!
我的服务器检查许多服务器的 ILO Ips,如果服务器损坏,它会以文本形式显示 IP,如果没有,它会显示指向 ILO 的链接(THE 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 %}
最佳答案
您的列表中到底有多少台服务器?我不会像这样在 python 中进行可用检查。但是使用 javascript,这样您就可以启动多个异步检查,并且一个状态代码会更改链接上的类或其他内容,甚至“禁用” anchor 元素。为此,请使用 JQuery ajax(类型为 HEAD)。
否则,我会在您的 checkUrlAvailable
函数上放置一些缓存。但这并不能改变执行请求需要一些时间的事实,甚至是 HEAD
。因此,在大列表(以及许多请求)上,它开始累加。
关于python - 使用请求检查损坏的链接后,Django 网站加载缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48078136/