2016-04-22 61 views
0

我试图创建一个web前端以使用Django执行各种管理任务。我从来不需要前端,但现在他们希望不同的BU能够利用它们,他们需要一些漂亮的东西来按下按钮。因此,我想要做的是:为Django表单填充后端脚本

  1. 用户输入的表单数据和使用后的数据作为ARGS
  2. 用户重定向到确认页面提交它
  3. 网站访问的外部脚本

权现在我可以发布数据,并且可以使用args运行脚本,但我不知道如何将这两者结合起来。任何帮助或提示我应该看看什么将不胜感激。我没有发布片段,因为我必须对它们进行消毒,但如果需要,我可以根据要求进行消毒以提供帮助。

回答

1

直接交互的最简单方法是利用Ajax,从而使用Ajax Post将JSON发送给Django,然后将参数作为dict()处理。这里有一个例子:

在浏览器(JQuery的/ JavaScript的):

function newModule() { 

     var my_data = $("#my_element").val(); // Whatever value you want to be sent. 

     $.ajax({ 
      url: "{% url 'modules' %}",  // Handler as defined in Django URLs. 
      type: "POST",      // Method. 
      dataType: "json",     // Format as JSON (Default). 
      data: { 
       path: my_data,    // Dictionary key (JSON). 
       csrfmiddlewaretoken: 
         '{{ csrf_token }}' // Unique key. 
      }, 

      success: function (json) { 

       // On success do this. 

      }, 

      error: function (xhr, errmsg, err) { 

       // On failure do this. 

      } 

     }); 

在服务器引擎(蟒蛇):

def handle(request): 

    # Post request containing the key. 
    if request.method == 'POST' and 'my_data' in request.POST.keys(): 

     # Retrieving the value. 
     my_data = request.POST['my_data'] 

    # ... 

现在,所有你需要做的是引导你的HTML表单调用JavaScript函数并将数据传递给引擎。

要成功时将用户重定向到另一个页面,你可以在你success功能使用:

window.location.href = "http://www.example.com"; 

它模拟类似点击的锚标记(链接)的反应。

希望这会有所帮助。