2017-02-18 12 views
0

私のbase.htmlの一番下には、includeに動的に生成された他の.htmlファイルがあります。そこで、私は.jsファイルを呼び出して、そのエンドポイントにGET要求を出します。見てみましょう。動的に生成された内容を含む

# _base.html 
<!DOCTYPE html> 
<html lang="en"> 
<head> ... 
<script type=text/javascript src="{{url_for('static', filename='js/recent_posts.js') }}"></script> 
</head> 
<body>... 
{% block content %}{% endblock %} 
... 
{% include 'recent_posts.html' %} 
</body> 
</html> 

# recent_posts.js  
$(function() { 
    $.ajax({ 
     url: '/recent_posts', 
     type: 'GET' 
    }); 
}); 

# view for recent_posts 
... 
@recentPosts_blueprint.route('/recent_posts', methods=['GET']) 
def recent_posts(): 
    vacation = Vacation.query.all() 
    return render_template('recent_posts.html', vacation=vacation) 


# recent_post.html 
... 
<h3>Recent Posts</h3> 
{{ vacation }} 
... 

ページのロードは、私が唯一</h3>タグとテキストデータではなく

なぜを取得しますか?どのようにすればいいですか?

答えて

0

コードを複製せずに、ドキュメントを読んだ後に解決策が見つかりました。私はfuncs.pyの下の関数にコードを入れ、グローバルに追加しました。

def recent_posts(): 
    data = [] 
    data_list = [] 
    vacation = Vacation.query.all() 
    return vacation 

app.jinja_env.globals.update(recent_posts=recent_posts) 

そして__init__.pyに、私はfunc.pyを追加しました:from project.funcs import funcsは、だから今、私はどこか他の_base.htmlかで{% set data = recent_posts() %}を行うことができますし、それが機能を実行し、バックベースに私の結果を取得します。

関連する問題