Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Flask中模板中的动态HTML转义_Javascript_Jquery_Flask_Jinja2 - Fatal编程技术网

Javascript Flask中模板中的动态HTML转义

Javascript Flask中模板中的动态HTML转义,javascript,jquery,flask,jinja2,Javascript,Jquery,Flask,Jinja2,我使用Flask的jinja2模板来显示网页。现在,每当用户在文本字段中输入一些数据(降价格式)时,我都会向服务器发送一个请求,相应的视图会返回转换为HTML的数据。然后使用jquery将html插入到div中 现在,Flask模板将无法按预期的方式呈现HTML。我已经尝试在服务器端使用Flask的标记和转义,但它仍然不能正确显示它。我必须想办法让模板完全忽略模板的某个区域,而不是自动转义它。我甚至尝试过使用{%autoescape off%}标记关闭autoescape,但我认为这只适用于{{

我使用Flask的jinja2模板来显示网页。现在,每当用户在文本字段中输入一些数据(降价格式)时,我都会向服务器发送一个请求,相应的视图会返回转换为HTML的数据。然后使用jquery将html插入到div中

现在,Flask模板将无法按预期的方式呈现HTML。我已经尝试在服务器端使用Flask的标记和转义,但它仍然不能正确显示它。我必须想办法让模板完全忽略模板的某个区域,而不是自动转义它。我甚至尝试过使用
{%autoescape off%}
标记关闭autoescape,但我认为这只适用于
{{..}}
内部的内容,或者只适用于使用
渲染模板
函数的情况

参考代码:

查看功能

@app.route("/convert_markdown/", methods=["GET", "POST"])
def convert_markdown():

    content = request.args.get('val')
    value = markdown.convert(content)

    return value
javascript

$("#content").bind('keyup', function() {
    var value = $( "input:text[name=content]" ).val();
    $( "#preview" ).text( value );
    $.get("/convert_markdown/",{val:value}, function(data) {
        $( "#preview" ).text( data );
    });
});
模板-html

<div id="preview"></div> 

您将返回值作为文本而不是HTML插入。改变

$( "#preview" ).text( data );

您还可以跳过jQuery并使用

document.getElementById('preview').innerHTML = data;

您正在以文本而不是HTML的形式插入返回值。改变

$( "#preview" ).text( data );

您还可以跳过jQuery并使用

document.getElementById('preview').innerHTML = data;

“显示不正确”是什么意思?什么是降价?您的问题中没有任何内容使用Jinja,这是您的实际代码吗?Markdown是一种非常常用的标记语言,因为它易于格式化,即使是原始代码也很容易阅读。代码的html部分位于Jinja模板中。使用烧瓶渲染的。我只包括了与我的问题相关的部分代码。我的问题不是“什么是降价?”而是“什么是
降价”
?“它是您安装的库吗?”?这是您自己编写的代码吗?在您提供的代码中,您不调用
render\u template
或与之相关的任何东西。它与您共享的代码无关。“显示不正确”是什么意思?什么是降价?您的问题中没有任何内容使用Jinja,这是您的实际代码吗?Markdown是一种非常常用的标记语言,因为它易于格式化,即使是原始代码也很容易阅读。代码的html部分位于Jinja模板中。使用烧瓶渲染的。我只包括了与我的问题相关的部分代码。我的问题不是“什么是降价?”而是“什么是
降价”
?“它是您安装的库吗?”?这是您自己编写的代码吗?在您提供的代码中,您不调用
render\u template
或与之相关的任何东西。这与你共享的代码无关。我明天早上上班的第一件事就是检查一下。我会告诉你事情的进展。我真的希望就是这样。谢谢你的帮助:)成功了!只是代码中的一个小改动。innerHTML应该由
document.getElementById(“预览”)设置。innerHTML=data
。将在您编辑并更正后接受答案。哈,是的,我结合了jQuery和vanilla JavaScript。我已经更新了答案,将两者都包括在内。我明天早上上班的第一件事就是检查一下。我会告诉你事情的进展。我真的希望就是这样。谢谢你的帮助:)成功了!只是代码中的一个小改动。innerHTML应该由
document.getElementById(“预览”)设置。innerHTML=data
。将在您编辑并更正后接受答案。哈,是的,我结合了jQuery和vanilla JavaScript。我已经更新了答案,将两者都包括在内。