django应用程序在读取json文件python

时间:2018-11-29 10:23:27

标签: python jquery django python-3.x

这是代码:
views.py

@csrf_exempt
def post_list(request):
    return render(request, 'blog/post_list.html', {})
@csrf_exempt
def show(request):
    return render(request, 'tt/readjson.html', {})

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.post_list),
    path('test/', views.data_return),
    path('tt/', views.show),
]

readjson.html

<html>
<head>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$.getJSON("log0.json", function (data) {
    $.each(data, function (index, value) {
       console.log(value);
    });
});

</script>

</head>
<body> 
Hello
</body>
</html>

我得到的输出是屏幕上的hello。但是在控制台日志中,我看到了:

jquery-1.10.2.js:8706 GET http://127.0.0.1:8000/tt/log0.json 404 (Not Found)
send @ jquery-1.10.2.js:8706
ajax @ jquery-1.10.2.js:8136
jQuery.(anonymous function) @ jquery-1.10.2.js:8282
getJSON @ jquery-1.10.2.js:8265
(anonymous) @ (index):5
jquery-1.10.2.js:8706 XHR failed loading: GET "http://127.0.0.1:8000/tt/log0.json".

json文件位于html模板所在的文件夹中,即tt文件夹中。

请让我知道如何避免出现缺失的部分。

1 个答案:

答案 0 :(得分:3)

将JSON与模板放在同一文件夹中并没有好处。无法通过HTTP请求访问模板;它们是通过URL提供的视图呈现的。

您应该将JSON放入静态目录,然后通过STATIC_URL访问它;或者,您可以编写一个视图来像其他模板一样为它提供服务,但是这样做似乎没有任何意义。