【发布时间】:2014-09-21 05:28:42
【问题描述】:
我有一个这样的模型:
class Event(models.Model):
description = models.CharField(max_length=3072)
severity = models.CharField(max_length=96)
reception_timestamp = models.DateField()
version = models.CharField(max_length=100)
mail_archive_id = models.PositiveIntegerField()
component_id = models.CharField(max_length=32)
technician_at_work = models.BooleanField()
timestamp = models.DateField(db_index=True)
system = models.ForeignKey(System)
event_code = models.ForeignKey(EventCode)
在我的 views.py 文件中,我尝试访问信息所在的 MySql 数据库。
我运行了一些 QuerySets 操作,然后我继续从模型中提取我需要的信息以将其呈现到 html 模板,但是提取信息花费了太多时间:
events = Event.objects.filter(system_id=system_id).filter(timestamp__range=[from_date, now])
return [ e.timestamp, e.system.serial_number, e.version, e.event_code.code, e.description, e.severity, e.reception_timestamp for e in events ]
我尝试了一些方法,例如创建一个生成器并将其发送到模板,以使用它呈现 HTML 文档,但访问信息所花费的时间相同。
我能做什么?只需一两分钟即可抓取 270 行。 我检测到查询需要几秒钟时间,但是是对信息的访问消耗了剩下的时间。我该如何提升它?
谢谢!
【问题讨论】:
标签: python mysql django templates render