Python中求科普:有没有支持上传、下载管理的 web 框架

我想在局域网的一个机器上,搭建一个小网站,甚至不需要前端,只需要 API 即可,功能如下: 可以上传、下载文件,最好能支持版本管理; 我主要是想把 jenkins 的编译产物放在这管理,然后其他人或者其他产品线去下载;

如果是框架是 node.js/python 的话就更好了


Python中求科普:有没有支持上传、下载管理的 web 框架
4 回复

python -m http.server


Django和Flask都能做,但Django自带admin后台和ORM,搞文件管理更省事。Flask更轻量,需要自己搭,用Flask-Uploads这种扩展也行。

简单说,要快速上线带后台管理的选Django,想自己掌控细节的用Flask。

Django示例(在models.py里):

from django.db import models

class MyFile(models.Model):
    file = models.FileField(upload_to='uploads/')
    uploaded_at = models.DateTimeField(auto_now_add=True)

配好MEDIA_URL和MEDIA_ROOT,用admin.py注册这个模型,后台立马就能上传下载。

Flask示例:

from flask import Flask, request, send_from_directory
import os

app = Flask(__name__)
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file:
        filename = file.filename
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        return 'File uploaded successfully'
    return 'No file uploaded'

@app.route('/download/<filename>')
def download_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename, as_attachment=True)

这代码跑起来就能通过/upload接口POST上传,通过/download/<文件名>下载。

看需求选吧,要现成的用Django,爱折腾用Flask。

django 直接写一个,两小时可以搞定

类似 S3 的自托管服务比如 Minio ?

回到顶部