从Javascript命令运行Django函数

时间:2013-08-07 20:27:33

标签: javascript python django

当我根据JavaScript按钮告诉它时,我正在尝试让Django运行一个函数。我该如何做到这一点?我在哪里编写Django函数?

main.html中的JavaScript:

            function mainFunction(){
            alert("Beginning API Main Function");

                $.ajax({
                    type: 'POST',
                    url: 'livestream/postdata/',
                    success: function(){alert('DONE!');},
                    error:function(){alert('ERROR!');},
            });
            alert("ENDING API MAIN FUNCTION");
        }

Urls.py:

    url(r'^postdata$', 'livestream.views.postdata', name='postdata')

Views.py:

def postdata(request):

    r = ...api... (I know that the api works)
    print(r.text)

当我运行'mainFunction()'函数时,我得到两个警报,然后是另一个警告'错误'。这是为什么?

3 个答案:

答案 0 :(得分:1)

在urls.py文件中设置路线

url(r'^action/$', 'yourproject.views.action', name='action')

在views.py文件中,您将创建该操作。

def action(request):
  # do your magic!

然后,当某人与该按钮进行交互时,请执行ajax调用,该调用将在/ action处点击该URL。

答案 1 :(得分:0)

您向按钮添加一个侦听器,该触发器在触发时进行ajax调用。在view.py中,您处理该ajax调用的响应。

答案 2 :(得分:0)

@HieuNguyen

感谢您回答我的问题。这是通过聊天,所以我会写下来,有用的。

  1. 在ajax中需要在生命流之前使用'/'。 /直播/ POSTDATA /
  2. url(r'^ postdata / $','livestream.views.postdata',name ='postdata')
  3. 在views.py中
  4. 在功能之前我需要@csrf_exempt

    返回HttpResponse(r)