使用flask提供静态文件:flask无法识别路径,默认为404?

时间:2020-04-12 20:58:51

标签: python flask

我正在开发一个快速的URL缩短器,它也为相同的缩短的URL返回svg版本的QR码。我正在使用flask和python

我在flask中创建了一条特定的路由来提供文件并通过send_file返回文件以供下载,该文件在根目录中创建(我稍后将需要修复此问题,但这是另一个问题)并且位于其中,但是当我单击前面的链接时,flask默认为404。

这是下载路径:

@short.route('/<qr_file>')
def download(qr_file):
    return send_file(qr_file, as_attachment=True)

这是add_link路由(创建链接,提交到db,创建qrcode,存储它,将短而原始的url返回到模板以及要下载链接的qr_file位置)

@short.route('/add_link', methods=['POST'])
def add_link():
    original_url = request.form['original_url']
    link = Link(original_url=original_url)
    db.session.add(link)
    db.session.commit()

    qr_url = pyqrcode.create(link.short_url) 

    qr_file = link.short_url + '.svg'
    qr_url.svg(qr_file, scale = 8) 

    return render_template('link_added.html', 
        new_link=link.short_url, original_url=link.original_url, qr_file=qr_file)

这是link_added.html中的相关内容:

            <div class="field">
                    <label class="label">New URL</label>
                    <div class="control">
                        <input class="input" type="text" name="original_url" value="{{ url_for('short.redirect_url_to_url', short_url=new_link, _external=True) }}">
                    </div>
            </div>
             <div class="field">
                    <label class="label">QR Code</label>

                    <a href="{{ qr_file }}"> {{ qr_file }} </a><br>

                    <img src="{{ qr_file }}" height="90" width="106" /><br>
            </div>

0 个答案:

没有答案