我有一个概念性的问题
我目前正在使用ajax调用将数据从数据库发送到django模板,以填充页面上的图表
url.py
urlpatterns = [
path('chartdata1/', tracker.get_chart_data_json1, name="global_trend_chart"),
]
views.py
def get_chart_data_json1(request):
data = {}
cd = ChartData.get_global_trend()
data['chart_data'] = cd
return HttpResponse(json.dumps(data, default=str), content_type='application/json')
HTML/JAVASCRIPT
var chartDataUrl = "{% url 'global_trend_chart' %}"
$.getJSON(chartDataUrl,
function(data) {
chartOptions.xAxis.categories = data['chart_data']['date'];
chartOptions.series[0].data = data['chart_data']['confirmedcases'];
var chart = new Highcharts.Chart(chartOptions);
})
虽然这很好,但我不希望人们能够直接访问url(即,我不希望他们能够访问myurl.com/chartdata1来访问json数据)。我只希望django模板可以访问此视图/数据,以填充那里的图表。我也不要求用户登录才能看到主页,所以我不想对视图创建@login\u所需的限制
我是否有办法保护myurl.com/chartdata1端点,使其仅可供图表使用
谢谢
干草, 在这种情况下,您可以将内容呈现为HTML,而不是以JSON呈现实际内容。然后使用Ajax,您可以在模板中显示这一点。如果您理解我在示例中所展示的方式,它将非常酷
查看示例
您将在上下文中传递json dict,然后在“graph.html”中为graph编写代码,然后将其传递给json。所以,人们不能认为JSON是JSON中的html内容
Ajax示例
它可能会帮助您隐藏json
相关问题 更多 >
编程相关推荐