【问题标题】:How to pass in value from template to flask [duplicate]如何将值从模板传递到烧瓶[重复]
【发布时间】:2018-07-26 15:55:10
【问题描述】:

我想为无限数量的文件生成下载链接列表。 想法是生成到(/download/)的重新路由链接。但是,它给了我一个错误:

**werkzeug.routing.BuildError: Could not build url for endpoint 'download'. Did you forget to specify values ['filename']?**

知道我做错了什么吗?很抱歉格式混乱,这是我在尝试了一整天之后第一次来这里。 编辑:我尝试了语法更改,但它们不起作用。因此我问了这个问题。 这是代码。


{% extends "base.html" %}

{% block content %}
    {% for file in files %}
    <div><a href="{{ url_for('download', file.name) }}">{{ file.name }}</a></div>
    <!-- <div><p>{{ file.name }}</p></div> -->
    {% endfor %}

    <div class="container">
        <h1>File Input</h1>
        <form method="POST" action="/upload" enctype="multipart/form-data">
        <div class="form-group">
            <label for="inputFile">File input</label>
            <input type="file" name="inputFile">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
    </form>
    </div>
{% endblock %}

class File(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(300))
    #timestamp = db.Colum(db.Datetime, index=True, default=datetime.utcnow)
    data = db.Column(db.LargeBinary)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<FileContents {}>'.format(self.name)

@app.route('/download/<filename>')
def download(filename):
    file_data = File.query.filter_by(name = filename).first()

    return send_file(BytesIO(file_data.data),attachment_filename=filename, as_attachment=True)
@app.route('/files')
def files():
    files = File.query.all()

    return render_template('files.html', title='Files', files=files)

【问题讨论】:

    标签: python html flask jinja2


    【解决方案1】:

    url_for 接受关键字参数,而不是位置参数。应该是:

    {{ url_for('download', filename=file.name) }}
    

    【讨论】:

    • 我也试过了!这没用。这让我认为有一个不同的问题,甚至可能是我忽略的设计选择。
    猜你喜欢
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2017-08-20
    • 2021-02-08
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    相关资源
    最近更新 更多