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

标签 python html mysql django web

我的网站提供了有关不同服务器的详细信息。 我已使用请求来检查哪些服务器 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/

相关文章:

Python 子进程无法从 Bat 文件获取环境变量

Python:如何检查导入的模块/包/类是否来自标准库

javascript - 如何使用 JavaScript 创建 BMI 计算器,并提供以公斤/米为单位的 BMI 或以磅/英尺为单位的 BMI 之间进行选择的选项

html - firefox和IE8及以上浏览器无法隐藏默认下拉箭头

html - `display:inline-block` 元素上的奇怪边距

php - 如何通过与cakephp表中的旧数据进行比较来插入和删除多行?

python - 在 python Maya 中运行多个函数

python - Seaborn FacetGrid 条形图和色调

mysql - SQL授予创建表权限

php - 用 OR 条件绑定(bind)参数 Mysql