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 ?

