簡體   English   中英

如何在 Django 中使用 AJAX 顯示 rest api?

[英]How to display rest api using AJAX in Django?

我希望能夠使用下面的 REST API 並在單個 HTML 頁面上顯示數據。

這是我的Django project數據庫連接函數的 API(響應)。

URL: http://127.0.0.1:8000/api/v1/test/

API output:
{
    "message": "Success !",
    "server": "Connection established from ('PostgreSQL 12.7, compiled by Visual C++ build 1914, 64-bit',)"
}

我嘗試使用 AJAX 顯示數據。 但是,該數據不會出現在頁面上。 這是我的嘗試:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>API Calls Demo</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
</head>

<body>
    <div class="container-fluid">
        <h3>Test Output</h3>
        <br></br>
        <table class="table table-sm">
            <tr>
                <th>Output</th>
            </tr>
            <tbody id="divBody"></tbody>
        </table>
    </div>
</body>
<script>
    $(document).ready(function () {
            BindConnection();
        });

    function BindConnection(){
        $.ajax({
            type:"GET",
            dataType: "JSON",
            url: "http://127.0.0.1:8000/api/v1/test", 
            success: function(data){
                console.log(data);

                var str = "";
                var totalLength = data.length;
                
                for (let i=0; i < totalLength; i++){
                    str += "<tr>" +
                        "<td>" + data[i].server + "</td>"
                    "</tr>"
                }
                $("#divBody").append(str)
            }
        });
    }
</script>

注意:可以在控制台顯示結果,沒有錯誤。

抱歉,我的嘗試很糟糕,因為我還是 Django、REST API 和 Javascript (AJAX) 的新手。 我已經嘗試了幾次,但我做不到。

你能幫我回答這個問題嗎? 謝謝!

在此處輸入圖片說明

我認為導致問題的以下行

var totalLength = data.length;

似乎字典沒有屬性列表作為帶有字典的 api 響應,因此如果您嘗試添加行,則需要將其作為字典而不是數組來處理

console.log(totalLength)

這將是 undifiend 值所以沒有循環幸福

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM