我有一个带有下载按钮的flask web应用程序。当我点击按钮时,我想执行一个python方法,而不是javascript方法。这个python方法应该从web页面获取一些最近修改的html代码作为输入。
最准确的情况是:用户被要求在一些文本中填充空格,完成后单击下载按钮。单击按钮时,将显示一个python函数 render_pdf()
通过使用将html修改文本转换为pdf的 pdfkit
图书馆。
在最简单的版本中,“我的项目”具有以下结构:
static/sample.pdf
模板/index.html
main.py
这是我到目前为止的代码:
main.py
from flask import Flask, render_template
import pdfkit
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == "__main__":
app.run(debug=True)
index.html
<body>
<p class="test">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus, beatae!
<span contenteditable="true" class="badge alert-info name" data-placeholder="Enter your name" data-focused-advice="Start typing"></span><i class="fa fa-lg fa-plus-circle"></i>
Lorem ipsum dolor sit, amet consectetur adipisicing elit. Perspiciatis, laboriosam?
</p>
<button onclick="render_pdf()"><a href="../static/sample.pdf" download="my_file">Download</a></button>
</body>
我想要执行的python方法应该是这个,传递 htmlstr
作为输入:
import pdfkit
def render_pdf(htmlstr):
pdfkit.from_string(htmlstr, './static/sample.pdf')
我知道我可以用javascript获取变量 htmlstr
通过做 document.getElementsByClassName("test")[0].innerHTML;
我觉得我很快就要到达那里了,我检查了可能有点老但非常相似的问题,但我只是不知道如何将输入html传递给python方法。我错过了什么?
1条答案
按热度按时间ymdaylpp1#
定义运行脚本的url(路由)。
在javascript代码中,向步骤1中定义的url发出http请求。
它很简单,我为您编写了代码,我希望它能帮助您:
我还在github上做了一个要点
main.py
index.html