Flask:使用客户端数据更新模板

时间:2014-05-13 14:02:00

标签: javascript jquery geolocation flask

我正在开展一个项目,在该项目中,用户在访问网址时会看到默认的餐馆列表(休息对象)。如果用户选择使用HTML5地理位置功能提交其位置,我想更新结果列表,使其按邻近用户的位置进行排序。

初始模板成功渲染,我可以将数据恢复到服务器 - 我只是无法重新渲染模板。当我在开发控制台中预览对客户端帖子的响应时,数据会更新,但是当我转到页面时,没有任何更改。

我知道我可能犯了一个愚蠢明显的错误,我只是不知道它是什么。

以下是我的观点:

def home():
    if request.method == 'POST':
        lat = request.form.get('lat','')
        lng = request.form.get('lng','')
        query = loc_query(lat,lng,10,0,20)
        rests = Rest.query.from_statement(query).all()
        return render_template('main.html',rests = rests)
    else:
        rests = getLatest(5)#Get 5 random rest objects 
        return render_template('main.html',rests = rests)

这是我的客户端脚本:

<script type="text/javascript"> 
    function sendloco (loc) {

        $.post('/latest',{lat:loc.coords.latitude,lng:loc.coords.longitude}, 
            function(data){
                $('#restlist').html(data);
            });                 
    };

    navigator.geolocation.getCurrentPosition(sendloco);
</script>

以下是我的模板的相关部分:

<div class="col-lg-12" id="restlist">

        {% for rest in rests %}
            <h2><b><a href="{{ url_for('profile',id=rest.id)}}">{{ rest.name }}</a></b></h2>
            <h3>Date:{{ rest.latestDt() }}</h3>
            <h3>{{ rest.street }}</h3>
        {% endfor %}
    </div>

Thansk的帮助!

1 个答案:

答案 0 :(得分:0)

看起来你正在调用$('.restlist').html(data)但是在html中你的div有id="restlist"没有上课。也许试试$('#restlist').html(data)