【问题标题】:Make API call on page load (Django)在页面加载时进行 API 调用(Django)
【发布时间】:2022-01-25 03:01:31
【问题描述】:

我正在构建一个基本的 Django 站点。 目前,我正在尝试找出一种方法来进行 API 调用并在页面加载时检索结果。 是否可以使用js .onload 函数调用django视图函数?

任何建议/提示将不胜感激!

【问题讨论】:

  • 在 js onload 函数上调用后端 API URL。从您的 api 视图中获取数据。在 js 中玩弄响应数据。

标签: django


【解决方案1】:

您可以简单地使用 JavaScript 获取 API,如下所示:

page.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My Title</title>
</head>
<body>
<h1 id="msg"></h1>
<script>
  var url = 'http://127.0.0.1:8080/message';
  fetch(url).then(
    response => response.json()
  ).then(function(data) {
    document.getElementById("msg").textContent = data['message'];
  });
</script>
</body>
</html>

views.html

from django.shortcuts import render
from django.http import JsonResponse


def index(request):
    return render(request, "index.html")


def message(request):    
    return JsonResponse({"message": "Hello World!"})

【讨论】:

    【解决方案2】:

    您可以使用“请求”库并在 django 视图上为此页面发出请求。

    import requests
    
    def my_view(request):
        r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
        context = {
             'data': r.json()
        }
        return render(request, 'my_html.html', context)
    

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2015-07-13
      • 2020-11-09
      • 2012-12-15
      • 1970-01-01
      相关资源
      最近更新 更多