Django实现后台上传并显示图片功能

1.安装pillow

pip install Pillow

2.创建app

python manage.py startapp upload

3. project设定

settings.py

INSTALLED_APPS = [

'django.contrib.admin',

'django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.messages',

'django.contrib.staticfiles',

'upload.apps.MyuploadConfig', #add this

]

TEMPLATES = [

{

'BACKEND': 'django.template.backends.django.DjangoTemplates',

'DIRS': [os.path.join(BASE_DIR,'templates')],

'APP_DIRS': True,

'OPTIONS': {

'context_processors': [

'django.template.context_processors.debug',

'django.template.context_processors.request',

'django.contrib.auth.context_processors.auth',

'django.contrib.messages.context_processors.messages',

'django.template.context_processors.media' #add this

],

},

},

]

#picture path setting

MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("\\", "/")

MEDIA_URL = '/media/'

urls.py

from django.contrib import admin

from django.urls import path,include

from django.conf.urls.static import static

from django.conf import settings

urlpatterns = [

path('admin/', admin.site.urls),

path('', views.index),

path('upload/', include(('myupload.urls', 'myupload'), namespace='myupload')), # add uppoad urls

] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) #add image path

4. app 设定

models.py

from django.db import models

class User(models.Model):

name = models.CharField(verbose_name='姓名', max_length=10)

avator = models.ImageField(verbose_name='头像', upload_to='upload/%Y/%m/%d')

admin.py

from django.contrib import admin

from .models import *

# Register your models here.

admin.site.register(User)

urls.py

from django.contrib import admin

from django.urls import path, register_converter, re_path

from . import views

urlpatterns = [

path('', views.index, name='index'), # 上传首页

]

views.py

from django.shortcuts import render

from .models import User

from django.http import HttpResponse

# Create your views here.

def index(request):

users = User.objects.all()return render(request, 'upload/index.html', locals())

5 . 前台设定

project 目录下 templates/upload/index.html

----------------------------------------------------------------------------------------

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Title</title>

</head>

<body>

<ul>

{% for user in users%}

<li>{{ user.name }}</li>

<li><img src="{{ MEDIA_URL }}{{ user.avator }}" alt=""></li>

{% endfor %}

</ul>

</body>

</html>

6. migraiton

python manage.py makemigrations

python manage.py migrate

python manage.py createsuperuser

python manage runserver 0.0.0.0:8000

7.进行管理后台上传user 图片http://localhost:8000/admin

8.显示 http://localhost:8000/upload/

Django实现前台上传并显示图片功能

以上是 Django实现后台上传并显示图片功能 的全部内容, 来源链接: utcz.com/z/332231.html

回到顶部