Django_设置静态文件上传文件

Posted wangdianchao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django_设置静态文件上传文件相关的知识,希望对你有一定的参考价值。

1.设置静态文件

  第一步:在项目目录下创建static文件夹,用于存放项目的静态文件,可以在该文件夹下面继续创建文件夹,用于静态文件的分类管理。

  第二步:在settings.py下面添加以下代码。设置静态文件路径。

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, static),
)

  第三步:在模板文件调用静态文件。

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图片</title>
</head>
<body>
<img src="{% static ‘/media/11.png‘ %}}" alt="">
</body>
</html>

2.上传文件

  第一步:设置settings.py文件,添加以下代码。

# 设置上传的文件的保存位置。
MEDIA_ROOT = os.path.join(BASE_DIR, static/media/)

  第二步:设置模板文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
{#设置表单提交的路径,post方法,上传文件必须设置enctype="multipart/form-data"#}
<form action="/app01/succeed/" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="pic1">
    <input type="submit" value="上传">
</form>
</body>
</html>

  第三步:视图模块接收文件

from django.shortcuts import render, HttpResponse
import os
from django.conf import settings
# Create your views here.


def upload(request):

    return render(request, index.html)


def succeed(request):
    pic = request.FILES.get("pic1", None)   # 用FILES方法接收文件
    if not pic:
        return HttpResponse(没有上传的文件!)
    pic_name = os.path.join(settings.MEDIA_ROOT, pic.name)  #将设置的上传文件保存位置路径和文件名拼接起来。获取文件保存的完整路径
    test_path = pic_name.replace(/, \)     # 由于是在windows系统下,将文件路径中的“/”转换为“”。
    with open(test_path, wb+) as wdc:
        for i in pic.chunks():  # 分块写入文件
            wdc.write(i)
    return render(request, img.html, locals())

 

以上是关于Django_设置静态文件上传文件的主要内容,如果未能解决你的问题,请参考以下文章

Django 项目设置 Debug=False 后静态文件和上传文件404错误问题解决

Django中辅助技术总结[静态文件,中间件,上传图片,分页案例]

django前端怎么设置 静态文件路径

16_文件上传meidia路径的配置和使用

[Django] [channels] [python]如何上传静态文件(图像,文档)?

Django_生产环境静态文件配置