Django 基础实践(一):图片上传--上篇

  1. 创建项目
django-admin startproject upload

2.第二步呢,改一下setting.py的设置吧

然后呢,添加点东西在最后
设置完上传的照片会自己创建和文件夹media存进去。

# setting.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')  # 设置静态文件路径为主目录下的media文件夹
MEDIA_URL = '/media/'
  1. 第三步咱去 models.py 文件,创建点数据表用来存储上传的照片路径和名称

from django.db import models


# Create your models here.

class mypicture(models.Model):
    user = models.CharField(max_length=64)
    photo = models.ImageField(upload_to='photos', default='user1.jpg')

生成一下,那两句命令:


python manage.py makemigrations

python manage.py migrate 
  1. 第四步,去url.py文件,改一下路由
from django.contrib import admin
from django.urls import path
from app01 import views
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
                  path('admin/', admin.site.urls),
                  path('updateinfo/', views.updateinfo),
              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  1. 第五步我们去创建一个HTML文件,用来上传图片,名字随便起了。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/updateinfo/" method="POST" enctype="multipart/form-data">
{% csrf_token %}
    <div class="updateImg">
        <img src="{{ account.photo.url }}" alt=""/></div>

    <input name="photo" type="file" id="exampleInputFile">
    <button id="photo" class="btn btn-danger" type="submit">上传头像</button>
</form>
</body>
</html>
  1. 第六步我们view.py文件。这是很重要的!~!
from django.shortcuts import render, HttpResponse
from app01 import models
# Create your views here.

from django.core.files.base import ContentFile


def updateinfo(request):
    if request.method == 'POST':
        # img = request.FILES.get('photo')
        # user = request.FILES.get('photo').name
        new_img = models.mypicture(
            photo=request.FILES.get('photo'),  # 拿到图片
            user=request.FILES.get('photo').name # 拿到图片的名字
        )
        new_img.save()  # 保存图片
        return HttpResponse('上传成功!')  

    return render(request, 'aaa.html')

注意:好像要装个扩展工具,好像叫“Pillow”

pip install Pillow

链接:
https://www.cnblogs.com/wjw1014/p/8664474.html

posted @ 2020-10-20 10:34  鲁哒哒  阅读(164)  评论(0编辑  收藏  举报