gpt4 book ai didi

python - Django 电子商务网站巨大的产品页面初始加载时间(等待)

转载 作者:行者123 更新时间:2023-11-28 19:24:10 24 4
gpt4 key购买 nike

对于 Django 相关的所有内容,我只是初学者,因此对于我令人困惑的解释,我先表示歉意。我一直在尝试解决带有附加电子商务模块的基于 Django 的网站上的一些页面加载问题。

初始页面加载时间很长,大约 5 秒,之后一切顺利/加载顺利。

这个巨大的加载时间发生在与产品相关的所有页面上(在我的例子中是单个产品页面和购物车)。奇怪的是,列表很好(类别页面)。

我的下一个猜测是加载时间是由一些与产品相关的查询引起的,所以我进一步搜索了代码,并且找到了包含“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")

此时我迷路了,不确定我是否走在解决这个问题的正确道路上,或者我还应该做什么。

此外,还有一些缺失的图像,仍然没有解决这些问题,但在这一点上并不完全相关。此外,内存缓存已启用,静态模板文件完全不会影响页面加载时间(将模板剥离为仅文本),并且为 Apache 环境启用了 mod_pagespeed 模块。

我非常感谢对此的任何意见。谢谢!

最佳答案

我认为 product_view 中的这些行不正确

product = get_object_or_404(Product.unmoderated.select_related(),pk=product_id)
variation = get_object_or_404(ProductVariation.objects.select_related(),pk=variation_id)

改成

product = get_object_or_404(Product,pk=product_id)
variation = get_object_or_404(ProductVariation,pk=variation_id)

.select_related() 将尝试预取和加载所有对象及其相关对象,这将消耗资源。

关于python - Django 电子商务网站巨大的产品页面初始加载时间(等待),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com