【发布时间】:2013-06-09 14:54:06
【问题描述】:
我只是 Django 相关的一切的初学者,所以我为我令人困惑的解释提前道歉。我一直在尝试解决带有附加电子商务模块的基于 Django 的网站上的一些页面加载问题。
初始页面加载时间很长,大约 5 秒,之后一切顺利/加载。
- 这是萤火虫的截图:http://i.imgur.com/WEuYwq1.jpg
- 开发环境的链接:http://bit.ly/13G7jNp(产品页面)
所有与产品相关的页面(在我的例子中是单个产品页面和购物车)上都会发生这种巨大的加载时间。奇怪的是,列表很好(类别页面)。
我的下一个猜测是加载时间是由一些与产品相关的查询引起的,所以我进一步搜索了代码,发现了包含“product_view”定义的 main.py 文件。
代码如下:
def product_view(request,shortcode,product_id,variation_id,stub):
product = get_object_or_404(Product.unmoderated.select_related(),pk=product_id)
variation = get_object_or_404(ProductVariation.objects.select_related(),pk=variation_id)
print variation.__dict__
if not product.active:
c = {}
return render_to_response('main/product_inactive.html', c, context_instance=RequestContext(request))
links = ['main_product_view','main_product_variation'+str(variation.id)]
c = {'links':links, 'product':product, 'variation':variation, 'categories':get_categories(), 'brands':get_brands(), 'title':product.name}
c.update(csrf(request))
return render_to_response('main/product.html', c,
context_instance=RequestContext(request))
def product_view_json(request,shortcode,product_id,variation_id,stub):
try:
product = get_object_or_404(Product,pk=product_id)
variation = get_object_or_404(ProductVariation,pk=variation_id)
thumbnail = get_thumbnail(variation.image, '220x220', crop='center', quality=80)
d = {"title":product.name, "brand":product.merchant.name, "price":str(product.base_price+variation.price), "image":thumbnail.url}
out = json.dumps(d)
r = HttpResponse(out)
r['Access-Control-Allow-Origin'] = '*';
return r
except:
return HttpResponse("Error")
此时我迷路了,不知道我是否在正确的道路上解决这个问题或我应该怎么做。
此外,还有一些缺失的图像,仍然没有敲出来,但在这一点上并不完全相关。此外,启用了 memcache,静态模板文件完全不影响页面加载时间(将模板剥离为仅文本),并且为 Apache 环境启用了 mod_pagespeed 模块。
我非常感谢您对此的任何意见。谢谢!
【问题讨论】:
-
试试Django Debug Toolbar,它会显示执行了多少查询以及每个查询花费了多少时间。然后你可以从那里改进。
标签: python django django-models e-commerce django-views