我正在开发一个 Web 应用程序,在前端使用 HTML + 纯 Javascript,并使用 Flask 作为后端。应用程序向服务器发送一些 ID,服务器应生成 PDF 文件格式的报告并将其发送回客户端。
我使用 Flask 作为后端,并创建了以下端点:
@app.route("/download_pdf", methods=['POST'])
def download_pdf():
if request.method == 'POST':
report_id = request.form['reportid']
print(report_id) //Testing purposes.
// do some stuff with report_id and generate a pdf file.
return send_file('/home/user/report.pdf', mimetype='application/pdf', as_attachment=True)
// I already tried different values for mimetype and as_attachment=False
Run Code Online (Sandbox Code Playgroud)
从命令行我可以测试端点并获得正确的文件,服务器控制台按预期打印 123 report_id:
curl --form reportid=123 http://localhost:5000/download_pdf >> output.pdf
Run Code Online (Sandbox Code Playgroud)
对于前端,我创建了一个调用 Javascript 函数的按钮:
<button id=pdf_button onclick="generatePdf()"> PDF </button>
Run Code Online (Sandbox Code Playgroud)
JavaScript 函数如下所示:
function generatePdf(){
var report_list = document.getElementById("report_list")
if …Run Code Online (Sandbox Code Playgroud) 我想在 Python 3 中键入类方法的输入。我希望参数是list我创建的自定义类的 a。该方法的定义如下:
def add_report_data(self, report_data: list[ReportData]):
pass
Run Code Online (Sandbox Code Playgroud)
ReportData 是一个普通的类,定义如下:
class ReportData:
def __init__(self, system: str, value: int):
self.__system = system
self.__value = value
Run Code Online (Sandbox Code Playgroud)
执行我的代码时,我收到以下错误:
def add_report_data(self, report_data: list[ReportData]):
TypeError: 'type' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
但是,report_data简单地将类型更改list为可以执行,但这不完全是我想要做的。知道发生了什么吗?谢谢。