【问题标题】:Searching with a defined query in Django / Python在 Django / Python 中使用定义的查询进行搜索
【发布时间】:2015-06-30 20:37:17
【问题描述】:

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

<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 都没有太多经验,因此任何帮助都是无价的。再次感谢

【问题讨论】:

  • 请注意,您已经暴露了您的 api 密钥,这可能不是一个好主意。
  • 通过查看编辑内容仍然可以访问编辑后的值!
  • 我不会太担心它只是一个简单的测试我不会使用我网站中列出的密钥:)
  • 有什么想法吗? ://

标签: python json django api


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多