使用Django/Python中定义的查询进行搜索

2024-04-25 00:41:36 发布

您现在位置: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ïu搜索(query)被称为填充搜索字段(query),其中包含用户的输入,然后显示数据。你知道吗

我对django和api都没有太多的经验,所以任何帮助都是无价的。再次感谢


Tags: keydivapiidjsonurlinputgroup
1条回答
网友
1楼 · 发布于 2024-04-25 00:41:36

我在django方面也不是很有经验,但是已经工作了3个月了,我建议您在导航栏中使用django auto complete light或django ajax选项进行前端搜索,在后端字段使用django salmonela。这些很有用。而且input标记实际上不适用于django表单,因此必须在div标记中使用一个类,并使用{表单.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 = []

相关问题 更多 >