如何使用flask / jinja将值从python传递到html表单

时间:2019-02-21 09:58:17

标签: python jinja2

因此,我首先在特定目录中创建所有文件夹的数组,然后将其传递给我的html文件。

geom_point(aes(text = paste("Country:", df1()[,1]), color = Continent), 
           size = 2, alpha = 0.85)

接下来,我浏览该数组以查找已选择的文件。

def test_yt_vid():
mylist = os.listdir(WD+r"static/"+YOUTUBE_FOLDER)
full_path = (WD+YOUTUBE_FOLDER)
return dict(mylist=mylist, full_path=full_path)

接下来,我使用JS将特定值转换为变量

<select name=list id="videolist" method="GET" action="/">
        {% for mylist in mylist %}
            <option value= "{{mylist}}" SELECTED>{{mylist}}</option>"
        {% endfor %}
</select>

所以问题出在这里,我不确定如何将该值传递到以下jinja代码中

$('#videolist').change(function () {
//console.log($("#videolist").val());
 var fileInput = $("#videolist").val())};

我试图用JS中的变量fileInput替换'testVid.mp4',我尝试使用<video id="videotesting1" class="video" width="300" height="240" autoplay loop controls="true"> <source src="{{url_for('static',filename='videoTest/' + 'testVid.mp4')}}" type="video/mp4"> </video >

但到目前为止还没有运气。

这与“如何使用jQuery更改视频src?”不同。因为我正在尝试使用js将jinja变量传递给HTML。

2 个答案:

答案 0 :(得分:0)

您的引号有误。看一下文件名,在其中设置'videoTest/'加上一些变量值(例如x),结果为'videoTest/'x。你注意到了吗?在videoTest之后关闭的单引号应出现在变量fileInput之后。正确的方法是:

$("#videotesting1").attr("src","{{url_for('static',filename='videoTest/" + fileInput + "')}}");

修改src时,是否已通过 inspect元素更改了src,但未播放所需的视频?如果是这样,请尝试:

$("#videotesting1").load()

看看load在@jQuery文档中的作用。

答案 1 :(得分:0)

找出问题所在,文件名必须超出jinja代码,因为事件发生时出于某种原因它不会被jinja渲染。

$("#videotesting1").attr("src","{{url_for('static',filename='videoTest/')}}" + fileInput);