django如何两次渲染相同的模板

时间:2018-05-22 00:55:52

标签: python ajax django jinja2

我是使用django的新手,对于我的问题应该如何措辞我并不熟悉。

我一直在开发一个新的网络应用程序,但注意到网站的初始加载速度很慢。我目前的观看代码就在这里。

from jinja2 import Environment, FileSystemLoader
from django.http import HttpResponse
from tools import fetcher
import requests
import json

def index(request):
    env = Environment(loader=FileSystemLoader('templates'))
    template = env.get_template('index.html')
    template_values = {'popular_stocks': []}
    popular = fetcher.get_tops()

    for instrument in popular:
        r = requests.get('https://api.iextrading.com/1.0/stock/%s/quote' % (instrument['symbol']))
        quote = json.loads(r.content.decode('utf-8'))
        template_values['popular_stocks'].append(quote)

    return HttpResponse(template.render(template_values))

是否有加速我的网站加载首先加载初始index.html没有任何popularstocks,然后将fetcher.get_tops()提交给模板值?

我知道AJAX,但我不确定如何实现它,或者这甚至是我需要的。

任何朝着正确方向迈出的一步都将受到赞赏。

1 个答案:

答案 0 :(得分:-1)

是的,在这种情况下,我肯定会使用AJAX。

其他策略可能是在某处缓存股票价格(MEMCACHE,Redis?),因此只是根据缓存过期策略而不是每次加载页面进行更新。