使用Django url Django/Python在单击按钮时执行api函数

2024-05-15 12:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我已经建立了我的网站,有一个搜索栏和搜索按钮,我希望执行我的api函数位于我的api.py文件文件。这个api.py文件文件如下所示:

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']

我在我的网址.py像这样:

^{pr2}$

我在我的网址里打对了吗?我的api文件和我的url.py?尽管如此,我在我的身体里这样称呼它:

          <form action="{% url "search" %}">
<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>
</form>

但是当我搜索的时候什么也没有发生。据我所知,我相信我的设置是正确的,但我显然是错的,我相当新的django,所以任何帮助都将非常感谢


Tags: 文件keypyformapijsonurlinput
1条回答
网友
1楼 · 发布于 2024-05-15 12:31:09

api调用的第一个问题

我强烈建议您使用requests,否则您将执行locality = query.replace(' ', '%20')这样的URL编码空间,但是其他所有的东西,比如ä+*?等等?在

import requests

api_params = {'api_key':locu_api, 'locality': locality, 'category':'restaurant'}
apicall = requests.get(api_url, params=api_params)
json_respons = apicall.json()

你的第二个问题是(danielroseman提到过)这是一个视图(应该在视图.py)必须返回一个http响应。docs

仿制面食

^{pr2}$

在问基础知识之前,你应该做django tutorial

相关问题 更多 >