Django:使用jquery / js从python方法获取数据

时间:2019-01-14 12:39:51

标签: python json ajax django

我有一个方法可以遍历.txt文件,并使用该文件中的不同单词随机创建一个代码。现在,我想以某种方式获取该数据/代码,并使用js函数进行调用。更具体地说,当单击按钮时,它应始终调用该python方法并给我返回的值,然后我可以使用该值在页面上显示它。

在我的validators.py中,我的方法已经完成

def generate_code(request):
    words = open("words.txt").readlines()
    word_one = random.choice(words).rstrip('\n')
    word_two = random.choice(words).rstrip('\n')
    number = random.randint(0, 100)
    code = "{}-{}-{}".format(word_one, word_two, number)
    return JsonResponse(code)

在我的urls.py中:

url(r'form/generate/code/?$', views.generate_code),

但是如何立即调用此函数并获取返回值以在JS中使用它呢?

我知道我必须做类似的事情

$.ajax({
  type: "GET",
  url: '/api/form/generate/code/'
  data: ???,
  success: function(data) {
     console.warn(data)
 }
});

但是我的data是什么?那不是我从python方法返回的JsonResponse吗?

1 个答案:

答案 0 :(得分:0)

好吧,我知道了,只需要用HttpResponse而不是JsonResponse返回我的代码即可:

return HttpResponse(json.dumps(code), content_type='application/json'),从我的ajax调用中删除data并添加一个datatype: 'json'即可