如何在flask路由中传递url参数(在浏览器打开时自动下载pdf的url)


我目前正在我的代码中硬编码我的pdf下载url,所以当我在浏览器中输入"http://127.0.0.1:5000/“时,pdf下载到指定的目录。但是,当我想要使此动态,以便我可以输入"http://127.0.0.1:5000/“之后的任何url,它应该保存到我指定的目录,这是不起作用的,并抛出一个404错误。

当我尝试使路由动态,以便它可以处理任何下载链接时,示例代码。这将抛出404错误:

import urllib
import requests
import ectd
from ectd import convert
from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)  

#@app.route("/")
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def download_file(download_url):
    #download_url="https://ptenantectdtest.blob.core.windows.net/documentcontainer/0bbc072c-9114-4ff5-9bc7-dbcc86bff54d?sv=2015-12-11&sr=b&sig=bh8gCr6cZIxr2C%2FwB6pB6u%2BxpZFVWZ6S3GWw0QZCqyo%3D&st=2019-07-22T06%3A28%3A56Z&se=2019-07-23T06%3A38%3A56Z&sp=r&rscd=attachment%3B%20filename%3D%20%225ca21af9-5b67-45f8-969c-ae571431c665.pdf%22"
    response = urllib.request.urlopen(download_url)
    file = open('D:/xyz_.pdf', 'wb')
    file.write(response.read())
    file.close()


    return 'ABC'


if __name__ == '__main__':
     app.run()

当我对路径进行硬编码并将文件保存在指定目录中时的示例代码:

    @app.route("/")
    def download_file():
        download_url="https://ptenantectdtest.blob.core.windows.net/documentcontainer/0bbc072c-9114-4ff5-9bc7-dbcc86bff54d?sv=2015-12-11&sr=b&sig=bh8gCr6cZIxr2C%2FwB6pB6u%2BxpZFVWZ6S3GWw0QZCqyo%3D&st=2019-07-22T06%3A28%3A56Z&se=2019-07-23T06%3A38%3A56Z&sp=r&rscd=attachment%3B%20filename%3D%20%225ca21af9-5b67-45f8-969c-ae571431c665.pdf%22"
        response = urllib.request.urlopen(download_url)
        file = open('D:/xyz_.pdf', 'wb')
        file.write(response.read())
        file.close()


        return 'ABC'
if __name__ == '__main__':
         app.run()

有人能告诉我,当我尝试使我的路线动态而不是硬编码try下载链接时,有什么问题吗

转载请注明出处:http://www.eluwawa.com/article/20230526/1231031.html