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

How to use WeasyPrint PDF Builder on Password Protected Pages?

我正在尝试使用 Wea​​syPrint 从我的 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

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

原来 render_template 只是 returns 一个 html 字符串,所以我可以在路由的末尾执行以下操作:

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