从烧瓶端点生成PDF

我试图从Flask终结点制作一个PDF文档,该终结点基本上是从MySql数据库中检索值并将其显示在HTML页面上。我尝试了jsPDF,但无法获得结果


这是我的Python代码:


from flask import Flask, render_template, request

from flask_mysqldb import MySQL


app = Flask(__name__)

# configure db

app.config['MYSQL_HOST'] = 'localhost'

app.config['MYSQL_USER'] = 'username'

app.config['MYSQL_PASSWORD'] = 'dbpassword'

app.config['MYSQL_DB'] = 'flaskapp'

mysql = MySQL(app)

@app.route('/', methods=['GET', 'POST'])

def alpha():

    if request.method == 'POST':

        # Fetch the form data

        userDetails = request.form

        name = userDetails['name']

        email = userDetails['email']

        cur = mysql.connection.cursor()

        cur.execute("INSERT INTO users(name,email) VALUES(%s,%s)", (name, email))

        mysql.connection.autocommit(on=True)

        cur.close()

        return 'success'


    return render_template('index.html')


@app.route('/users')

def users():

    cur = mysql.connection.cursor()

    resultValue = cur.execute("SELECT * from users")

    if resultValue > 0:

        userDetails = cur.fetchall()

        return render_template('users.html', userDetails=userDetails)



@app.route('/showpdf')

def showpdf():

    return render_template('showpdf.html')




if __name__ == '__main__':

    app.run()

以下是html页面:users.html


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Display Records From DB</title>


</head>

<body>

<style>

    th {

        background-color: orange;

    }

</style>

<table border="1">

    <tr>

        <th>

            Name

        </th>

        <th>

            Email Id

        </th>

    </tr>

    {% for users in userDetails %}

    <tr>

        <td>{{users[0]}}</td>

        <td>{{users[1]}}</td>

    </tr>

    {% endfor %}

</table>

</body>

</html>


有只小跳蛙
浏览 137回答 3
3回答

千万里不及你

我认为您误解了后端是flask和前端是html和javascript。当您点击<a>&nbsp;标记时,浏览器会将您的请求发送到支持的烧瓶,但您的文件系统中没有任何pdf文档。这就是为什么您收到404错误的原因。可能是您可以在前端生成pdf(我不熟悉jsPDf库)。至少要做以下事情:编写可以使用js生成pdf的函数或其他函数。在您的showpdf.html中放一个按钮或其他东西,当用户单击该按钮时,会有一个事件,使用第1步的功能作为事件侦听器,然后为用户生成pdf。

慕标5832272

基于Ajax1234解决方案和您遇到的问题。您的问题是flask无法找到安装flask_weasyprint的位置。如果您使用的是Windows,则必须导航到/ script目录才能安装cd C:\flaskproject\flask\ScriptsC:\flaskproject\flask\Scripts>pip install Flask-WeasyPrint然后,当您运行您的应用程序时。一切都会很好
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python