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())

相关推荐