Django实现后台上传并显示图片功能
1.安装pillow
pipinstallPillow
2.创建app
pythonmanage.pystartappupload
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',#addthis
]
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'#addthis
],
},
},
]
#picturepathsetting
MEDIA_ROOT=os.path.join(BASE_DIR,'media').replace("\\","/")
MEDIA_URL='/media/'
urls.py
fromdjango.contribimportadmin
fromdjango.urlsimportpath,include
fromdjango.conf.urls.staticimportstatic
fromdjango.confimportsettings
urlpatterns=[
path('admin/',admin.site.urls),
path('',views.index),
path('upload/',include(('myupload.urls','myupload'),namespace='myupload')),#adduppoadurls
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)#addimagepath
4.app设定
models.py
fromdjango.dbimportmodels classUser(models.Model): name=models.CharField(verbose_name='姓名',max_length=10) avator=models.ImageField(verbose_name='头像',upload_to='upload/%Y/%m/%d')
admin.py
fromdjango.contribimportadmin from.modelsimport* #Registeryourmodelshere. admin.site.register(User)
urls.py
fromdjango.contribimportadmin
fromdjango.urlsimportpath,register_converter,re_path
from.importviews
urlpatterns=[
path('',views.index,name='index'),#上传首页
]
views.py
fromdjango.shortcutsimportrender from.modelsimportUser fromdjango.httpimportHttpResponse #Createyourviewshere. defindex(request): users=User.objects.all()returnrender(request,'upload/index.html',locals())
5.前台设定
project目录下templates/upload/index.html
----------------------------------------------------------------------------------------
Title {%foruserinusers%}
- {{user.name}}
- {%endfor%}