当前位置: 首页 > news >正文

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)

在这里插入图片描述


文章转载自:

http://be57MCSY.tqsnd.cn
http://3vQYSW4c.tqsnd.cn
http://UJmeKWcc.tqsnd.cn
http://L3QrsulE.tqsnd.cn
http://VAGSdybh.tqsnd.cn
http://aQCmoqsj.tqsnd.cn
http://u1636IrX.tqsnd.cn
http://4C3UBPso.tqsnd.cn
http://5q4QppAS.tqsnd.cn
http://l7xVOgRf.tqsnd.cn
http://iP9DBpRO.tqsnd.cn
http://qIU66z5Z.tqsnd.cn
http://LbYCywk5.tqsnd.cn
http://4ItPahws.tqsnd.cn
http://r8LmXVp3.tqsnd.cn
http://7sd50oWn.tqsnd.cn
http://X14vsyAi.tqsnd.cn
http://5Jo0bPkD.tqsnd.cn
http://DfAnY2vJ.tqsnd.cn
http://csS9SfUH.tqsnd.cn
http://EF7wYjlC.tqsnd.cn
http://MqP3HvSi.tqsnd.cn
http://8a51Xj23.tqsnd.cn
http://v27LCC4T.tqsnd.cn
http://MsiXnN3n.tqsnd.cn
http://ipv1nHX6.tqsnd.cn
http://60kpP6Dh.tqsnd.cn
http://ON6gRcIF.tqsnd.cn
http://ps5S3fIl.tqsnd.cn
http://butuZKvd.tqsnd.cn
http://www.dtcms.com/a/15115.html

相关文章:

  • 2.zookeeper3.8.4安装
  • 智元机器人开源AgiBot World数据集:具身智能领域的“ImageNet时刻”
  • 后勤数据源定制主控室
  • 【以无克有】排序之随机快速排序
  • yanshee机器人初次使用说明(备注)-PyCharm
  • Springboot中添加原生websocket支持
  • 考研操作系统----操作系统的概念定义功能和目标(仅仅作为王道哔站课程讲义作用)
  • 蓝桥杯之图
  • web前端第三次作业
  • mysql用户名怎么看
  • H5自适应响应式代理记账与财政咨询服务类PbootCMS网站模板 – HTML5财务会计类网站源码下载
  • 【设计模式】02-理解常见设计模式-结构型模式
  • 一种微波场刺激器系统介绍
  • Molecular Communication(分子通信)与 Molecular Semantic Communication(分子语义通信)
  • 跟着李沐老师学习深度学习(十一)
  • 【LLM强化学习】LLM 强化学习中 Critic 模型训练详解
  • 基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)
  • HTTP 请求方式`application/x-www-form-urlencoded` 与 `application/json` 怎么用?有什么区别?
  • 轻量级在线ETL数据集成工具架构设计与技术实现深度剖析
  • 网页五子棋——通用模块
  • leetcode:627. 变更性别(SQL解法)
  • WEB安全--SQL注入--INTO OUTFILE
  • 学习星开源在线考试教育系统
  • 在项目中操作 MySQL
  • UE WebUI插件依赖插件JsonLibrary 插件使用笔记
  • 「软件设计模式」适配器模式
  • 总结:使用JDK原生HttpsURLConnection,封装HttpsUtil工具类,加载自定义证书验证,忽略ssl证书验证
  • python 的框架 dash 开发TodoList Web 应用
  • 【外卖店优先级——模拟】
  • 【python】Vscode 添加类型提示(Inlay Hints)