python - 使用 AJAX 在 Python 的 jinja2 框架中动态加载行

标签 python ajax google-app-engine jinja2

我正在尝试在用户到达页面末尾时动态加载新内容。我的网络应用程序使用 gae-python。我使用 ajax 和 jquery 来更新 html 中的查询。

HTML:

{% block content %}

<div class="hero-unit special-padding">
  {% for h in hots %}
    {{ h.imageid.get().render() | safe }}

  {% endfor %}

{% include 'pager.html' %}
 </div>
{% endblock %}

Jquery 和 AJAX:

  $(window).scroll(function () {
     if ($(window).scrollTop() + $(window).height() > $('.hero-unit').height() - 100 && !isLoading) {$('#loadpage').click(function() {
        var page=$('#loadpage').attr('name');
        $.ajax({
            type: "POST",
            dataType:"json",
            url: '/loadpage', 
            data : {'page': page}, 
            success: updatehtml,  
        });
        return false;
        });
                    });

    function updatehtml(e){
        for (var i = 0; i < e.length; i++) {
            var html= "{{ "+e[i]['imageid']+".get().render() | safe }}";
            $('.hero-unit').append(html);
        }
    }

我序列化数据存储实体并作为 json 传递。它将使用

更新 HTML
{{ datastoreKey.get().render()|safe }}

现在我希望 jinja2 框架在 ajax 更新我的 HTML 时调用 python 函数 .render()

我知道它可以通过用 javascript 编写整个 HTML 代码来替代,但我想知道是否有其他更简单/更好的方法来做到这一点。

最佳答案

function updatehtml(e){
        for (var i = 0; i < e.length; i++) {
            var html= "{{ "+e[i]['imageid']+".get().render() | safe }}";
            $('.hero-unit').append(html);
        }
    }

仅在有人请求您的 URI 时呈现一次。

因此行 var html= "{{ "+e[i]['imageid']+".get().render() | safe }}"; 将被渲染并且包含对您的 porpuse 的无效渲染。

为了做到这一点,您需要使用 html 从您的 lodapage 处理程序进行响应。 只需“移动/采用”html= "{{ "+e[i]['imageid']+".get().render() | safe }}"; 到您的加载页面处理程序,然后用一个简单的模板文件或内联渲染它,并使它成为一个 html 响应。 AJAX 请求将能够获取 html 格式的数据,然后您可以轻松地附加它。您必须小心 id,不要让它们依赖于 html,而是依赖于模型/id,以免重复等。

之后,您可以直接应用和 html,您可以从 e 参数轻松获取

关于python - 使用 AJAX 在 Python 的 jinja2 框架中动态加载行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171887/

相关文章:

python /Django : Simple Django Template

python - Django:如何根据views.py中的功能显示不同的图像

python - 在 python 中识别 'x:...y:...z:...' 的正则表达式

javascript - 提交时隐藏表单

javascript - 使用 javascript 和 ajax 技术下载/提取网站内容

google-app-engine - 在我的子项目中执行Appengine的downloadCloudSdk任务时出错

python 3 - 如何将命令行参数中的 "\"作为原始字符串保存

python - selenium webdriver 的 tcp/ip 端口耗尽

php - Laravel Report Analytics - 缓慢的 foreach 查询循环

python - AppEngine HTTPS CName 似乎挂起