将数据从Python(烧瓶框架)传递给javascript

时间:2014-10-23 13:18:38

标签: javascript python flask

我尝试将数据(确切地说是路径或网址)从烧瓶传递到javascript。但它不承认我的变量。 在服务器端:它上传文件,处理该文件,然后创建并保存许多图像。当我尝试将路径传递给使用three.js库的javascript文件时,它没有。

@app.route('/upload', methods=['POST'])
def upload_file():
    print('coucou')
    if request.method == 'POST':
        file = request.files['file']
        print(file)
        # if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        print(filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        path = UPLOAD_FOLDER + filename
        fits_reader = FitsReader.FitsReader()
        fits_reader.open_file(path)
        cube_faces = ['/home/morban/essaiserver/cube3D/CubeX.PNG', '/home/morban/essaiserver/cube3D/CubeY.PNG', '/home/morban/essaiserver/cube3D/CubeZ.PNG']
    return render_template('index.html', cube_faces=cube_faces)




for (var i = 0; i < 3; i++) {
        switch (i) {
            case 0:
                texture[i] = new THREE.ImageUtils.loadTexture('{{ cube_faces[0] }}');
                console.log('{{ cube_faces[0] }}')
                break;
            case 1:
                texture[i] = new THREE.ImageUtils.loadTexture('{{ cube_faces[1] }}');
                break;
            case 2:
                texture[i] = new THREE.ImageUtils.loadTexture('{{ cube_faces[2] }}');
                break;
            }

1 个答案:

答案 0 :(得分:2)

javascript必须位于模板文件中,并且不包含脚本源。

如果包含,您可以使其具有功能或&#34; class&#34;并像这样使用它:

   (function($) {
    var texture = new LoadTexture(
                '#filter_form',
                {{ cube_faces | tojson | safe }}
            );
    })(jQuery); 

你可以/应该传递cube_fase有json并在Jinja2上将其过滤为安全。