这是我的views.py
from flask import Flask
app = Flask(__name__)
@app.route('/autocomplete')
*def get_contacts():*
cat_list = []
cat_list = contact.objects.all()
return dumps(cat_list)
这是我的js
function showDialog() {
$("#dialog").dialog(
{
width: 600,
height: 400,
});
$.ajax({
url:'{{url_for("autocomplete")}}'
}).done(function(data){
$( "#search" ).autocomplete({
source: data
});
});
}
当我尝试运行此操作时,我发出以下错误
获取http://127.0.0.1:8000/share_win/%7B%7Burl_for(%22autocomplete%22)%7D%7D 404(未找到)
有什么想法吗?
答案 0 :(得分:1)
你的问题来自这里:
$.ajax({
url:'{{url_for("autocomplete")}}'
})
url_for
方法需要所需路径的函数名称而不是物理路径。
要解决此问题,您可以执行以下操作:
$.ajax({
url:'{{url_for("get_contacts")}}'
})
或者如果您的Javascript在JS文件中,请执行以下操作:
$.ajax({
url:'/autocomplete'
})
答案 1 :(得分:0)
我收到同样的错误。
当javascript在html文件中时(在我的情况下是base.html),但是当它在一个名为dgmain.js的单独文件中时却没有。
我将javascript放在我的模板(create_product.html)中的{%block scripts%}中,并在那里工作。
当使用jinja2时,似乎需要在模板中,而不是在单独的.js文件中。