我的同事有另一个使用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
感谢所有帮助。
答案 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。