如何使用ColdFusion向Django执行请求,然后执行POST

时间:2014-01-28 01:35:09

标签: python django post coldfusion get

我的同事有另一个使用ColdFusion的应用程序,他查询电话号码,但我需要检索查询并放入我的Django应用程序。从ColdFusion到Django形式的GET变量,然后保存就是我想要的。他还给我一个响应变量来检索,但不知道如何。那可能吗?

现在它做的是一旦你点击提交,电话号码的所有结果都会在弹出窗口中打开。但是不必复制和粘贴所有信息,将它加载到Django表单中会很不错。

以下是我到目前为止的一个例子:

<form name="input" action="http://friendurlapi/" method="get">
    Password: <input type="text" name="pw"><br>
    Phone Number: <input type="text" name="PhoneNumber"><br>

    <select name="MTS">
        <option value="MVI">Incoming Voice</option>
        <option value="MVO">Outgoing Voice</option>
        <option value="SMO">Outgoing SMS</option>
    </select>

    From Date: <input type="text" name="FromDATE"><br>
    To Date: <input type="text" name="ToDATE"><br>

    <input type="submit" value="Submit">
</form>

结果是这样的,我需要自动输入文本字段。

1/01 / 2014,12:00:00,XXXXXXXXX,XXXXXXXXX,XXXX,XX,XXXXXXXXXXXXXX

感谢所有帮助。

1 个答案:

答案 0 :(得分:2)

不是从浏览器提交表单(通过<form>元素),而是选择创建一个普通的Django表单,并使用以下内容在后端查询朋友的API:

 apiUrl = 'http://friendurlapi/?pw=foo&PhoneNumber=bar...'

 # import requests
 response = requests.get(apiUrl)

 # import urllib2
 fd = urllib2.urlopen(apiUrl)
 response = fd.read()
 fd.close()

在这种情况下,您朋友的API实际上会看到来自您的网络服务器的请求,而不是用户的请求。 (您还应该考虑将密码作为GET参数发送是否安全;如果它是用户密码而不是可撤销的API密钥,这可能是一个坏主意。)

另一种方法是使用JavaScript查询API,并在返回后将响应插入DOM。使用jQuery:

$('form[name="input"]').submit(function() {
    $.get('http://friendurlapi/', {
        // get the options out of the form
        pw: $('input[name="pw"]').val(), 
        PhoneNumber: $('input[name="PhoneNumber"]').val(),
        // ...
    }, function(data) {
        // once the response from the form is received,
        // put it into your text box
        $('#textbox').text(data);
    });
})

这两个选项都不是特别优雅,但第一个可能更好,因为它更有可能隐藏用户的API。