为了账号安全,请及时绑定邮箱和手机立即绑定

从烧瓶端点生成PDF

从烧瓶端点生成PDF

有只小跳蛙 2021-04-02 18:15:53
我试图从Flask终结点制作一个PDF文档,该终结点基本上是从MySql数据库中检索值并将其显示在HTML页面上。我尝试了jsPDF,但无法获得结果这是我的Python代码:from flask import Flask, render_template, requestfrom flask_mysqldb import MySQLapp = Flask(__name__)# configure dbapp.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>
查看完整描述

3 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

我认为您误解了后端是flask和前端是html和javascript。

当您点击<a> 标记时,浏览器会将您的请求发送到支持的烧瓶,但您的文件系统中没有任何pdf文档。这就是为什么您收到404错误的原因。

可能是您可以在前端生成pdf(我不熟悉jsPDf库)。至少要做以下事情:

  • 编写可以使用js生成pdf的函数或其他函数。

  • 在您的showpdf.html中放一个按钮或其他东西,当用户单击该按钮时,会有一个事件,使用第1步的功能作为事件侦听器,然后为用户生成pdf。


查看完整回答
反对 回复 2021-04-20
?
慕标5832272

TA贡献1966条经验 获得超4个赞

基于Ajax1234解决方案和您遇到的问题。


您的问题是flask无法找到安装flask_weasyprint的位置。


如果您使用的是Windows,则必须导航到/ script目录才能安装


cd C:\flaskproject\flask\Scripts


C:\flaskproject\flask\Scripts>pip install Flask-WeasyPrint

然后,当您运行您的应用程序时。一切都会很好


查看完整回答
反对 回复 2021-04-20
  • 3 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信