Python + Google App Engine 中的自动完成文本框示例

6 投票
3 回答
5347 浏览
提问于 2025-04-16 17:16

我在做一个谷歌应用引擎的项目,需要一个自动补全的文本框。这个文本框会根据用户输入的内容,显示以这个内容开头的名字,而这些名字是从谷歌应用引擎的数据存储中获取的。

有没有好的教程或者示例代码可以参考呢?

更新:请对此进行回答

我创建了一个示例HTML代码:dl.dropbox.com/u/7384181/autocomplete/autocomplete.html。在这个HTML页面中,我是动态创建文本框的。目前我只在第一个文本框(txtProduct1)上设置了自动补全功能。请问我该如何在其他所有将要动态创建的文本框上也设置自动补全呢?

3 个回答

2

可以看看JQuery的自动完成插件,你可以用Django的模板标签来填充数据。下面是一个例子,假设你的数据是用逗号分开的。

Python:

names=[name for name in db.GqlQuery("SELECT * FROM names")]
values={'names':','.join(names)}
self.response.out.write(template.render('template.html',values))

template.html:

var data = "{{names}}".split(",");
$("#example").autocomplete(data);
8

你可以在这里查看jquery的自动完成插件

HTML :

$("#search_users").autocomplete(/search/search_manager);

python-controller:

jquery的自动完成插件默认使用变量q

class search_user(webapp.RequestHandler):
            q = (self.request.GET['q']).lower() 
            results=models.user.all().fetch(100) 
            for records in result:
                print records+"|"+records+"\n"

application = webapp.WSGIApplication([
                                      (r'/user_auth/search_manager',search_user)]

def main():
  run_wsgi_app(application)

if __name__ == '__main__':
  main()

simple:

将自动完成应用到一个类上 $

(".search_users").autocomplete(/search/search_manager);

撰写回答