1. 程式人生 > >diango 2.0 圖片上傳

diango 2.0 圖片上傳

前些天寫的後臺圖片上傳圖片功能,今天寫的時候就遇到問題了,三天不學習,趕不上劉少奇。特此把整個流程梳理記錄一下,以便後期使用時方便檢視。

1、models.py對應類中新增:

img = models.ImageField(upload_to='img', default='img/default.png')

(備註:如果後臺新增上傳圖片,你的models.py中的類要寫對應的admin,要註冊)

2、執行資料庫的操作命令:

python manage.py makemigrations

python manage.py migrate

3、在settings.py最後新增:

# 儲存上傳的圖片目錄
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
MEDIA_URL = '/uploads/'
4、在settings.py的 TEMPLATE-> OPTIONS-> context_processors 中新增:
'django.template.context_processors.media', 

5、在urls.py中新增:

找到urlpatterns  在它的後面(備註:[ ]的後面)新增:

static(settings.MEDIA_URL, document_root
=settings.MEDIA_ROOT)

打個樣:

from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
                  path('admin/', admin.site.urls),
                  path('', MyIndexView.as_view(), name="index"),
              ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

6、在html中顯示:

<img src="{{ MEDIA_URL }}{{ object.img }}">
(備註:顯示圖片的html,要先接受通過views.py傳過來的第一步中的類的例項)