django上传文件

1、settings.py配置

复制代码
# 静态文件配置
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    BASE_DIR /'static',
]

上传文件

复制代码
# 定义一个视图函数,该函数接收一个 request 参数
from django.shortcuts import render
# 必备引入
import json
from django.views.decorators.http import require_POST, require_http_methods
from django.http import JsonResponse
import time
# 其它引入
import os
import uuid

def home_view(request):
    # 使用 HttpResponse 包装要返回的字符串
    # return HttpResponse("欢迎使用许大得商城")
    context = {
        'message': '欢迎使用许大得商城!'
    }
    return render(request, 'myDjangoWb/index.html', context)

# 上传文件
@require_http_methods(["POST"])
def upload(request):
    data = {
        "code": "2000",
        "data": [],
        "message": "查询成功"
    }
    # 检查请求中是否包含文件
    if request.FILES.get('file'):
        uploaded_file = request.FILES['file']
        # 获取静态文件目录路径
        date = time.strftime("%Y%m%d", time.localtime())  # 当前日期
        static_dir = os.path.join(os.getcwd(), 'static', date)
        # 如果目录不存在,则创建
        if not os.path.exists(static_dir):
            os.makedirs(static_dir)
        # 获取文件扩展名
        file_ext = os.path.splitext(uploaded_file.name)[1]
        # 生成唯一的文件名
        unique_name = f'{uuid.uuid4().hex}{file_ext}'
        # 生成文件保存的完整路径
        file_path = os.path.join(static_dir, unique_name)
        print(file_path)
        try:
            # 保存文件
            with open(file_path, 'wb+') as destination:
                for chunk in uploaded_file.chunks():
                    destination.write(chunk)
            data['message'] = '文件上传成功'
            data['data'] = [f'/static/uploads/{unique_name}']
        except Exception as e:
            data['code'] = "2001"
            data['message'] = f'文件上传失败: {str(e)}'
    else:
        data['code'] = "2001"
        data['message'] = '未接收到文件'
    return JsonResponse(data)
相关推荐
想会飞的蒲公英3 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理
SeaTunnel4 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
深度研习笔记4 小时前
OpenCV工业视觉实战09|项目EXE打包+工控机无环境部署+后台常驻运行,彻底脱离Python环境,完成项目最终交付
python·opencv·webpack
CCPC不拿奖不改名5 小时前
大模型推理架构与开源生态知识整理
数据库·windows·python·架构·langchain·开源·github
Marst Code5 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
databook5 小时前
当散点图不够用时:用 t-SNE 可视化多维数据
python·数据分析·数据可视化
我的xiaodoujiao8 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099678 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
去码头整点薯条ing9 小时前
某当网登录滑块【协议+OCR】
爬虫·python·ocr
赶紧写完去睡觉9 小时前
Anaconda 创建虚拟环境与使用
python·pycharm·conda