如何在受密码保护的页面上使用WeasyPrint PDF Builder?

时间:2016-05-27 21:28:28

标签: python flask weasyprint

我尝试使用WeasyPrint从我的Flask应用程序下载页面,但在下载PDF时,我将登录页面作为PDF而不是预期页面。

我使用以下代码:

@app.route('/report.pdf')
def hello_pdf():
    # Make a PDF from another view
    return render_pdf(url_for('myprojects'))

登录装饰者是:

def login_required(f):
    '''login required decorator to protect routes
    '''
    @wraps(f)
    def wrap(*args, **kwargs):
        if 'logged_in' in session:
            return f(*args, **kwargs)
        else:
            flash('You need to login first.')
            return redirect(url_for('login'))
    return wrap

出于某种原因,尽管我已登录,但该功能似乎无法下载受保护的视图。如何才能正确下载该功能?

1 个答案:

答案 0 :(得分:0)

结果render_template只返回一个html字符串,所以我可以在路径的末尾执行以下操作:

html = render_template('myprojects.html', projects=projects)
return render_pdf(HTML(string=html))