Django上傳並顯示圖片

Django上傳並顯示圖片

很是詳細的教程,教你們一步步用Django上傳與顯示圖片。用例子學習是一個不錯的方法,下面我用一個很是簡單的例子爲你們講解Django中圖片的上傳與顯示。html

1. 建立名稱爲‘a’的項目

1
$django-admin startproject a

2.在項目‘a’中建立名爲‘b’的app

1
2
$cd a
$python manage.py startapp b

3.把b加入到settings.py中的INSTALLED_APPS中

1
2
3
4
5
6
7
8
9
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'b',
)

4.在文件夾b下,編輯models.py,建立IMG類

1
2
3
4
5
from __future__ import unicode_literals
from django.db import models
# Create your models here.
class IMG(models.Model):
img = models.ImageField(upload_to='upload')

5.更新數據庫

1
2
3
4
5
6
Django 1.7及以上的版本須要用如下命令
python manage.py makemigrations
python manage.py migrate

Django 1.7如下用如下命令
python manage.py syncdb

6.在文件夾b下,編輯views.py,建立圖片上傳與顯示函數

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from django.shortcuts import render
from b.models import IMG
# Create your views here.
def uploadImg(request):
if request.method == 'POST':
new_img = IMG(
img=request.FILES.get('img')
)
new_img.save()
return render(request, 'b/uploadimg.html')

def showImg(request):
imgs = IMG.objects.all()
content = {
'imgs':imgs,
}
return render(request, 'b/showimg.html', content)

7.在a文件夾下,編輯urls.py文件

1
2
3
4
5
6
7
8
9
10
11
12
from django.conf.urls import url
from django.contrib import admin
from b import views
from django.conf.urls.static import static
from django.conf import settings


urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^upload', 'b.views.uploadImg'),
url(r'^show', 'b.views.showImg'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

8.編輯a文件夾下的setting.py文件,添加以下代碼:

1
2
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')

9.在b文件夾下建立templates文件夾,再在templates文件夾下建立b文件夾,再在新建立的b文件夾下建立uploadimg.html文件,內容以下:

1
2
3
4
5
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<input type="file" name="img">
<button type="submit">上傳</button>
</form>

10.在uploadimg.html同目錄下建立showimg.html文件

1
2
3
{% for img in imgs %}
<img src='{{ img.img.url }}' />
{% endfor %}

11.運行django程序

1
$python manage.py runserver

12.上傳圖片

打開瀏覽器,輸入地址:http://127.0.0.1:8000/upload,進入圖片上傳頁面,點擊「瀏覽」,選擇要上傳的圖片,「上傳」之。由於頁面設計的比較簡單,因此你們上傳圖片後,在本頁面看不到任何變化,但確實已經上傳了;python

13.顯示上傳的圖片

在瀏覽器中輸入:http://127.0.0.1:8000/show,就會看到咱們已經上傳的圖片。數據庫

PS:以上步驟僅僅是很是簡單的圖片上傳與顯示,更多複雜的圖片上傳顯示問題,你們能夠在次基礎上修改。

原創文章如轉載,請註明本文連接:http://www.cognize.me/2016/05/09/djangopicdjango

相關文章
相關標籤/搜索