在 Django 中使用定义的查询进行搜索 / Python
Searching with a defined query in Django / Python
目前我的主页上有一个搜索栏和一个按钮,就像这样。
<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) 用用户输入填充搜索字段“(query)”,然后显示数据。
我对 django 或 api 都没有太多经验,所以任何帮助都是无价的。再次感谢
我在 django 方面也不是很有经验,但已经工作了 3 个月了,我建议你使用 django-auto-complete-light 或 django-ajax-在导航栏中选择您的前端搜索,并为您的后端字段选择 django-salmonela。这些很有帮助。并且输入标签并不真正适用于您的 django 表单,因此您必须在 div 标签中使用 class 并使用 {{ form.fieldName 显式调用每个表单字段}} 然后使用小部件来引用您的模板标签,或者只使用上面的包,它们知道如何更好地处理您的字段。
示例:
在您的模板中:
<div class="container text-center form-horizontal topSpace">
<form method="POST" enctype="multipart/form-data" action="{% url 'create-recipe' %}">
{% csrf_token %}
{{ form.non_field_errors }}
<div class="form-group">
{{ form.name.errors }}
<label for="{{ form.name.id_for_label }}" class="col-lg-4 control-label">Name:</label>
<div class="col-lg-1">
{# <input type="text" class="form-control" id="user-name" placeholder="Enter your name">#}
{{ form.name }}
</div>
</div><!-- end form-name-->
{{ form.as_p }}
<input type="submit" value="Add Recipe">
</form>
</div>
然后在您的表单中:
class RecipeForm(autocomplete_light.ModelForm, forms.ModelForm):
class Meta:
model = Recipe
exclude = []
目前我的主页上有一个搜索栏和一个按钮,就像这样。
<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) 用用户输入填充搜索字段“(query)”,然后显示数据。
我对 django 或 api 都没有太多经验,所以任何帮助都是无价的。再次感谢
我在 django 方面也不是很有经验,但已经工作了 3 个月了,我建议你使用 django-auto-complete-light 或 django-ajax-在导航栏中选择您的前端搜索,并为您的后端字段选择 django-salmonela。这些很有帮助。并且输入标签并不真正适用于您的 django 表单,因此您必须在 div 标签中使用 class 并使用 {{ form.fieldName 显式调用每个表单字段}} 然后使用小部件来引用您的模板标签,或者只使用上面的包,它们知道如何更好地处理您的字段。
示例:
在您的模板中:
<div class="container text-center form-horizontal topSpace">
<form method="POST" enctype="multipart/form-data" action="{% url 'create-recipe' %}">
{% csrf_token %}
{{ form.non_field_errors }}
<div class="form-group">
{{ form.name.errors }}
<label for="{{ form.name.id_for_label }}" class="col-lg-4 control-label">Name:</label>
<div class="col-lg-1">
{# <input type="text" class="form-control" id="user-name" placeholder="Enter your name">#}
{{ form.name }}
</div>
</div><!-- end form-name-->
{{ form.as_p }}
<input type="submit" value="Add Recipe">
</form>
</div>
然后在您的表单中:
class RecipeForm(autocomplete_light.ModelForm, forms.ModelForm):
class Meta:
model = Recipe
exclude = []