python - 如何在扩展的 Django 模板中发出 GET 请求
问题描述
我有一个简单的导航栏base.html
,其中包含指向其他页面的链接。目前,我在base.html
我拥有的所有其他页面上扩展模板。我想从天气 API 调用 GET 请求,以显示城市名称和当前温度等简单信息,并将其显示在导航栏上。由于base.html
模板没有与视图本身链接,我不确定如何去做。我已经成功地从 API 获取信息并在测试页面中显示信息。
base.html:
<body>
<div class="container-fluid bg-light">
<div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
<i class="far fa-newspaper fa-5x"></i>
<a href="{% url 'news_list:homepage' %}" class="nav-link link-dark display-4">Ziņu portāls</a>
<ul class="nav align-items-center ms-auto me-auto">
<li><a href="{% url 'news_list:all_posts' %}" class="nav-link link-dark pt-4"><h2>Visi raksti</h2></a></li>
<li><a href="{% url 'news_list:new_post' %}" class="nav-link link-dark pt-4"><h2>Pievienot rakstu</h2></a></li>
<li><h2>Information from API</h2></a></li>
</ul>
</div>
<hr/>
</div>
{% block content %}{% endblock content %}
</body>
解决方案
有几种方法:
- 您可以实现自定义模板标签
- 您可以编写自己的自定义上下文处理器并将其注入到每个呈现的模板中,在此处输入链接描述
每种方法都有其自身的权衡。由于您正在尝试显示动态数据,因此请注意您自己的缓存或访问过多的外部服务会减慢渲染速度(这样您就不会使其阻塞)。
推荐阅读
- python - Python Flask:拒绝服务器关闭时出错
- graphql - nestjs ResolveField 无法确定 GraphQL 主机类型
- java - 无法使用 Bulkwrite 更新 mongo 集合
- reactjs - 链接到具有不同 ID 的相同路径时,Gatsby 上的动态路由不起作用
- java - 当服务器没有要解码的对象时,从 feign.Response 获取状态码
- azure - 与 Azure AD 集成的应用程序缺少信息(SAML、OAuth)
- python - Heroku 文件更改
- python - 如何通过列中的给定值加速循环子集DataFrame并在Python中应用公式
- json - 无值 - Azure 流分析 - JSON 输入格式
- sql - 如何在多列上创建 postgres 全文搜索索引