【问题标题】:How can I download a file from a user-provided URL in Flask? [duplicate]使用 Flask,我如何从用户给定的 URL 下载文件?
【发布时间】:2014-09-13 11:04:24
【问题描述】:

我正在使用 Flask 在运行 Python 3.3 盒式磁带的 OpenShift 服务器上编写(应该是)一个快速应用程序。这就是我想要的:

我需要一个 Flask 方法来从 URL 获取文件并将该文件保存到磁盘。

编辑:我应该澄清一下,我对网络应用程序的经验很少。尽管阅读和搜索了数小时,我还是无法掌握 URL 和文件传输的窍门。

【问题讨论】:

  • 没有特定于 Flask 的方法,因为任何从 URL 下载文件的普通 Python 方法都会为您完成。

标签: python flask openshift


【解决方案1】:

使用requests,下载和保存 Google 徽标的方法如下:

import requests

r = requests.get('https://www.google.com/images/srpr/logo11w.png')

with open('google_logo.png', 'wb') as f:
    f.write(r.content)

您可以在 Flask 视图中使用它来下载用户提供的 URL。

from flask import request
import requests


@app.route('/user_download')
def user_download():
    url = request.args['url']  # user provides url in query string
    r = requests.get(url)

    # write to a file in the app's instance folder
    # come up with a better file name
    with app.open_instance_resource('downloaded_file', 'wb') as f:
        f.write(r.content)

【讨论】:

    【解决方案2】:

    我总是使用以下内容。当然,这取决于您如何处理目标文件。就我而言,它是一个 icalender 文件。

    from urllib.request import urlopen
    //I used python3
    
    location = 'http://ical.citesi.nl/?icalguid=81b4676a-b3c0-4b4c-89bd-d91c3a52fa7d&1511210388789'
    result = urlopen(location)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-05
      • 2018-04-16
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2012-10-19
      相关资源
      最近更新 更多