django 實現圖片上傳和顯示操作
版本:
- django 2.0.1
- python 3.6.2
準備工作:
- pip install pillow 安裝python圖片處理庫 pillow
- pip install mysqlclient 安裝mysql驅動包
- django工程的建立和app的建立
- 在settings.py檔案中載入app
上傳操作的實現:
- 在所建app中修改models.py檔案:
class Img(models.Model):
img_url = models.ImageField(upload_to='img') # upload_to指定圖片上傳的途徑,如果不存在則自動建立
- 執行以下命令,建立專案與資料庫之間的關係
python manage.py makemigrations
python manage.py migrate
修該專案的settings.py檔案
- 載入mysql驅動並連線mysql,並新增圖片上傳的根目錄
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 載入驅動
'NAME': 'imgs',# 資料庫名
'USER': 'root',# mysql的使用者名稱
'PASSWORD': '',# mysql的密碼
'HOST': 'localhost', # 連線地址(本地的話使用localhost或者127.0.0.1)
'PORT': 3306 # 資料庫服務的埠號
}
}
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/') # media即為圖片上傳的根路徑
MEDIA_URL = '/media/'
- 編寫views.py檔案
def uploadImg(request): # 圖片上傳函式
if request.method == 'POST':
img = Img(img_url=request.FILES.get('img'))
img.save()
return render(request, 'imgupload.html')
- 在urls.py檔案中新增url對映路徑
from imgTest.views import uploadImg # 新增
urlpatterns = [
path('admin/', admin.site.urls),
path('uploadImg/', uploadImg), # 新增
]
- 建立模板檔案
- 在所建app的目錄新建資料夾templates,並建立imgUpload.html新增以下內容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>圖片上傳</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="img">
<input type="submit" value="上傳">
</form>
</body>
</html>
- 啟動django伺服器,在瀏覽器中輸入http://localhost:8000/uploadImg/就可以看到上傳的介面。
圖片的顯示操作
- 修改views.py檔案新增圖片顯示函式
def showImg(request):
imgs = Img.objects.all() # 從資料庫中取出所有的圖片路徑
context = {
'imgs' : imgs
}
return render(request, 'showImg.html', context)
- 修改urls.py新增對映並載入圖片靜態路徑
from django.contrib import admin
from django.urls import path
from imgTest.views import uploadImg, showImg
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
path('admin/', admin.site.urls),
path('uploadImg/', uploadImg),
path('showImg/', showImg)
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
- 新建圖片顯示模板檔案showImg.html,並新增以下內容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>圖片展示</title>
</head>
<body>
{% for item in imgs %}
<img src="{{ item.img_url.url }}"><br/>
{% endfor %}
</body>
</html>
- 重啟django伺服器並在瀏覽器中輸入http://localhost:8000/showImg/即可看到上傳的所有圖片
相關文章
- Django實現圖片上傳並前端頁面顯示Django前端
- 安卓自定義View實現圖片上傳進度顯示(仿QQ)安卓View
- CoordinatorLayout、AppBarLayout實現上滑隱藏圖片,下滑顯示圖片APP
- vue 實現貼上上傳圖片Vue
- 直播系統app原始碼,藉助django 實現顯示圖片功能APP原始碼Django
- React-Quill中的圖片上傳及顯示ReactUI
- formData原生實現圖片上傳ORM
- jsp+springmvc實現檔案上傳、圖片上傳和及時預覽圖片JSSpringMVC
- 上傳封面圖片前臺不顯示 Picture檔案裡可以看到上傳的圖片
- PHP實現圖片(檔案)上傳PHP
- opencv圖片上如何顯示兩個小圖片OpenCV
- CSDN上傳圖片對水印操作
- QLabel顯示圖片 ,並實現縮放
- node+express實現圖片上傳功能Express
- layui中實現上傳圖片壓縮UI
- 通過API介面實現圖片上傳API
- HTML5實現圖片上傳2HTML
- Android用ImageView顯示本地和網上的圖片AndroidView
- 短視訊平臺開發,圖片上傳和圖片預覽功能實現
- 配置Django-TinyMCE元件支援上傳圖片功能Django元件
- Java實現圖片上傳到伺服器,並把上傳的圖片讀取出來Java伺服器
- angularjs 實現圖片上傳實時預覽AngularJS
- element-ui+Vue實現的圖片上傳UIVue
- Ajax+PHP實現非同步圖片上傳PHP非同步
- asp.net 使用FileUpload控制元件上傳並顯示圖片ASP.NET控制元件
- javascript和HTML5上傳圖片之前實現預覽效果JavaScriptHTML
- VS+Qt+Halcon——顯示圖片,實現滑鼠縮放、移動圖片QT
- SpringMVC實現ajax上傳圖片實時預覽SpringMVC
- 前端通過background實現圖片裁剪顯示的方法前端
- img圖片無法顯示利用onerror事件顯示替代圖片Error事件
- (H5)canvas實現裁剪圖片和馬賽克功能,以及又拍雲上傳圖片H5Canvas
- 上傳圖片
- 基於uploadify.js實現多檔案上傳和上傳進度條的顯示JS
- 基於Spring Boot實現圖片上傳/加水印一把梭操作Spring Boot
- 請問帝國CMS圖片上傳後顯示亂碼怎麼辦
- struts:實現圖片的上傳 argument type mismatch errorError
- 使用Vue實現圖片上傳的三種方式Vue
- 用Vue來實現圖片上傳多種方式Vue