【发布时间】:2015-07-01 13:49:36
【问题描述】:
就目前而言,我已经设置了我的网站,并且有一个搜索栏和搜索按钮,我希望执行位于我的 api.py 文件中的我的 api 函数。 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']
我已经像这样添加到我的 urls.py 中:
from django.conf import settings
from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
from django.views.generic import TemplateView
from django.contrib import admin
urlpatterns = patterns(
"",
url(r"^$", TemplateView.as_view(template_name="homepage.html"), name="home"),
url(r"^admin/", include(admin.site.urls)),
url(r"^account/", include("account.urls")),
url(r"^api/", 'loc_search', name="search"),
)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我是否在我的网址中正确调用它?我的 api 文件和我的 urls.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 还很陌生,所以任何帮助都将不胜感激
【问题讨论】:
-
好吧,你的
loc_search函数似乎没有返回任何东西,所以你一定是从 Django 得到一个异常。 -
不返回姓名和电话号码吗?当我在 python shell 中测试它时它确实如此
-
不,它将它们打印到控制台,它不会返回它们。同样,Django 将向您显示一条错误消息,因为必须从视图返回响应。您应该阅读该错误。
-
打印它们,这与返回值有很大不同(在 Django 视图中意义不大)。
-
我明白了,点了,那么有什么简单的方法来测试这个,比如直接打印到文本框中?