• Django 后台上传以及显示图片


    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/

  • 相关阅读:
    动态数组arraylist的使用
    第一次
    layui.mobile.css
    index.html
    Ansible部署配置
    微服务项目配置文件
    镜像挂载
    网卡设置
    获取内存信息
    超时方法
  • 原文地址:https://www.cnblogs.com/tingxin/p/12938921.html
Copyright © 2020-2023  润新知