按下按钮上的Json查询python / django

时间:2015-04-23 01:08:52

标签: python json django

目前,我的主页上有一个搜索栏和一个按钮,就像这样。

<div class="input-group">
<input id="address" type="textbox" placeholder="City or Zipcode" class="form-control">
<span class="input-group-btn">
<button class="btn btn-default" type="button" id="addressSearch">Search</button>
</span>
</div>

我创建了一个api.py文件,它位于我的网站文件夹中,看起来就是这样。

import urllib2
import json

locu_api = '****'

def loc_search(query):
api_key = locu_api
url = 'https://api.locu.com/v1_0/venue/search/?api_key=' + api_key
locality = query.replace(' ', '%20')
final_url = url + "&locality=" + locality + "&category=restaurant"
json_obj = urllib2.urlopen(final_url)
data = json.load(json_obj)

for item in data['objects']:
    print item['name']
    print item['phone']

基本上我要做的是当用户搜索城市时,例如纽约然后调用loc_search(查询),用用户输入填充搜索字段'(query)',然后显示数据。

我对django或api的经验都不多,所以任何帮助都是非常宝贵的。再次感谢

1 个答案:

答案 0 :(得分:1)

首先,你的html应该放入一个带有'action'的form

<form action="{% url "search" %}">
    <div class="input-group">
    <input name="query" id="address" type="textbox" placeholder="City or Zipcode" class="form-control">
    <span class="input-group-btn">
    <button class="btn btn-default" type="button" id="addressSearch">Search</button>
    </span>
</div>
</form>

然后你需要一个urls.py文件包含:

url(r"^api/", 'loc_search', name="search")

在视图中你可以这样做:

import urllib2
import json

locu_api = '****'

def loc_search(request):
    query = request.GET.get('query')
    api_key = locu_api
    url = 'https://api.locu.com/v1_0/venue/search/?api_key=' + api_key
    locality = query.replace(' ', '%20')
    final_url = url + "&locality=" + locality + "&category=restaurant"
    json_obj = urllib2.urlopen(final_url)
    data = json.load(json_obj)

    for item in data['objects']:
        print item['name']
        print item['phone']