当前位置: 首页 > 知识库问答 >
问题:

django如何两次呈现同一模板[重复]

卫烨
2023-03-14

我对使用django很陌生,不知道我的问题应该如何措辞。

我一直在开发一个新的web应用程序,但注意到网站的初始加载速度很慢。我当前的视图代码在这里。

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首先没有任何流行的股票,然后提交fetcher.get_tops()模板值?

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

如果朝着正确的方向迈出任何一步,都将不胜感激。

共有1个答案

哈泰
2023-03-14

是的,在这种情况下,我肯定会选择AJAX。

其他策略可能是将股价缓存在某个地方(MEMCACHE、Redis?),因此,只需根据缓存过期策略进行更新,而不是在每次页面加载时进行更新。

 类似资料:
  • 问题内容: 一个布局模板和三个子模板。 layout.html tags.html content.html comment.html 代码 我很困惑如何渲染每个子模板并将结果组合到布局输出中。 谢谢。 问题答案: 与往常一样,该文档是一个很好的起点。 我在操场上写了一个工作实例 解释一下: 您不需要struct文字中的字符串:,而不是 您只能将单个对象传递给模板才能执行,这将按照指令中的要求将对

  • 问题内容: 我想在相同的django模板中两次使用相同的{%block%}。我希望此块在我的基本模板中出现多次: 然后扩展它: 我将得到一个例外,因为Django希望该块仅出现一次: /的TemplateSyntaxError 名称为“ title”的“ block”标签出现了多次 一种快速而肮脏的解决方案是将块标题复制为title1和title2: 但这违反了DRY原则。因为我有很多继承模板,而

  • 当我的模板包含一些JavaScript时,我遇到了一个问题。例如: 果然,模板解释器希望将双卷曲大括号{{}}中的所有内容解释为变量。现在我想知道是否有办法关闭类似于的此类行为。

  • 这是我的模板: 这是我的视图模板: 我得到的内容是html,我想在视图中显示,但我得到的只是原始html代码。如何呈现HTML?

  • 问题内容: 这是我的代码: 但显示错误, 我能做什么 , 谢谢 问题答案: views.py: HTML:

  • 问题内容: 我的一个实体中的一个字段是“ datetime”变量。 如何将该字段转换为字符串以在浏览器中呈现? 这是一个代码片段: 这是我的实体类中的变量: 这是我收到的错误消息: 呈现模板期间引发了异常(“可捕获的致命错误:DateTime类的对象无法在… \ app \ cache \ dev \ twig \ 9b \ ad \ 58fd3bb1517632badf1fdc7fa4a8.ph