【问题标题】:Autocomplete with Django, jQuery and google app engine使用 Django、jQuery 和谷歌应用引擎自动完成
【发布时间】:2011-05-24 15:10:19
【问题描述】:
我是 Django 和 jQuery 的新手,但我有很多 python 经验。我基本上是在尝试编写一个 HTML 表单,现在只有一个文本框,当你输入它时,它会显示自动完成选项。这将用于寻找餐馆,我打算为此使用 Yelp API。有人可以指出我如何做到这一点的教程的方向 - 特别是关于 Django / HTML / jQuery 而不是如何使用 Yelp API?有什么我应该阅读的教程吗?我发现的所有教程都是从 Django 数据模型构建表单的非常基础的教程。..
谢谢!
【问题讨论】:
标签:
jquery
django
autocomplete
【解决方案1】:
Tomlog 的代码将在客户端上运行。但这个问题特别需要服务器端的 google-app-engine。
要实现服务器端 GAE 组件,您需要使用正则表达式(或至少是一些淡化的变体)搜索字符串。 GAE 目前没有为数据存储提供这样的功能;字符串只能搜索相等性。换句话说,如果您有一个包含“apple”和“orange”的大型数据存储,则无法自动完成“app”或“ora”。
有人抱怨说 google 将添加此类功能,但我不会指望它很快。因此,如果您想在大型数据集上自动完成,GAE 还不适合您。
(您当然可以在 GAE 之上构建自己的索引系统,但我猜这是不可能的)
【解决方案3】:
您可以很容易地在客户端使用Autocomplete 小部件(它是jQueryUI 的一部分)完成此操作。
因此,在您的情况下,您会执行以下操作:
<input id="restaurantSearch" />
<script>
$(document.ready(function() {
$('#restaurantSearch').autocomplete({
source: function(req, add){
$.getJSON('http://api.yelp.com/v2/search?term=?', req, function(data) {
var restaurantSuggestions = [];
$.each(data.businesses, function(i, business){
restaurantSuggestions.push(business.name);
});
add(restaurantSuggestions);
})
});
</script>