【问题标题】:How to send a string from python to HTML element using Flask如何使用 Flask 将字符串从 python 发送到 HTML 元素
【发布时间】:2020-07-26 02:38:10
【问题描述】:

如何将字符串文本数据从 python 脚本发送到特定的 HTML 元素。这样我就可以使用 Flask Python 库在某个地方清楚地向用户展示它。

python 脚本

@app.route('/services', methods=['POST', 'GET'])
def upload_image():
    if 'file' not in request.files:
        flash('No file part')
        return redirect(request.url)

    file = request.files['file']
    if file.filename == '':
        flash('No image selected for uploading')
        return redirect(request.url)
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        full_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
        file.save(full_path)
        # print('upload_image filename: ' + filename)
        flash('Image successfully uploaded and displayed')

        get_image(file.filename)
        get_image_path()
        data = 'render some text sting here' 
        print(data)

        return render_template('services.html', filename=filename, dataToRender=data)
    else:
        flash('Allowed image types are -> png, jpg, jpeg, gif')
        return redirect(request.url)

HTML

<form method="post" action="{{ url_for('upload_image') }}" enctype="multipart/form-data">
     <label for="img" style="margin-bottom: 40px;font-size: 30px">choose image:</label>

     <input type="file" onchange="preview(event)" autocomplete="off" required name="file"><br>
     <img class="card-img-top" src="img/inttion.jpg" id="imgg" alt="Card image cap">
     <p>
         <input type="submit" value="Submit">
         <h3>Your Recognition Result IS</h3>
         <input type="text" name="result">
          <h1>here is the result {{ dataToRender }}</h1>
     </p>
</form>

【问题讨论】:

    标签: html python-3.x web flask


    【解决方案1】:

    要完成您的要求,您必须利用 Flask 与模板引擎集成的能力(Flask 默认使用 Jinja2)。这看起来像这样:

    在包含路线的主文件中,您必须定义要在其上呈现模板的路线

    from flask import render_template
    
    @app.route('/')
    def index():
        data = someFunction()
        return render_template('index.html', dataToRender=data)
    

    在另一个名为 templates/index.html 的文件中,您必须定义模板,在这里您可以指定您提供的信息将显示在哪里。

    <!DOCTYPE html>
    <title>Hello from Flask</title>
    <h1>Hello {{ dataToRender }}!</h1>
    

    我希望这会有所帮助。 Flask 也有一些关于这个主题的很棒的文档,可以在 here

    找到

    【讨论】:

    • 什么都不显示
    • 你能提供更多关于你想要做什么的信息吗?
    • 我用一些代码编辑了帖子,请看一下。我正在尝试从用户那里获取图像,然后根据该图像上的类型显示一些字符串文本。我得到了正确的图像,但是每当我尝试渲染文本时,什么都没有出现。
    猜你喜欢
    • 1970-01-01
    • 2021-10-11
    • 2021-01-09
    • 1970-01-01
    • 2021-11-12
    • 2020-08-09
    • 2016-05-21
    • 2020-10-08
    • 2019-02-08
    相关资源
    最近更新 更多