日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django 實現圖片上傳和下載功能

瀏覽:229日期:2024-09-14 15:32:39
原生上傳圖片方式

#新建工程 python manage.py startapp test30#修改 settings.pyINSTALLED_APPS = [ ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, ’stu’]#修改urls.pyfrom django.conf.urls import url, includefrom django.contrib import adminurlpatterns = [ url(r’^admin/’, admin.site.urls), url(r’student/’,include(’stu.urls’)),]#新增加 stu/urls.py #coding:utf-8from django.conf.urls import urlimport viewsurlpatterns = [ url(r’^$’,views.index_view)]#編輯 stu/views.py # -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.http import HttpResponsefrom django.shortcuts import render# Create your views here.#原生上傳文件方式def index_view(request): if request.method == ’GET’: return render(request,’index.html’) elif request.method == ’POST’: #獲取請求參數 uname = request.POST.get(’uname’,’’) photo = request.FILES.get(’photo’,’’) print photo.name import os print os.getcwd() if not os.path.exists(’media’): os.mkdir(’media’) #拼接路徑 with open(os.path.join(os.getcwd(),’media’,photo.name),’wb’) as fw: # photo.read() #一次性讀取文件到內存 # fw.write(photo.read()) #分塊讀取,性能高 for ck in photo.chunks():fw.write(ck) return HttpResponse(’It is post request,上傳成功’) else: return HttpResponse(’It is not post and get request!’)#新增加模板文件 templates/index.html<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><form action='/student/' method='post' enctype='multipart/form-data'> {% csrf_token %} <p> <label for='ua'>姓名: </label> <input type='text' name='uname' /> </p> <p> <label for='ph'>頭像: </label> <input type='file' name='photo' /> </p> <p> &emsp;&emsp;&emsp;&emsp;&emsp;<input type='submit' value='注冊'/> </p></form></body></html>#效果如下:訪問: http://127.0.0.1:8000/student/

Django 實現圖片上傳和下載功能

Django 實現圖片上傳和下載功能

Django 實現圖片上傳和下載功能

Django 圖片上傳方式

需求:效果: 訪問 http://127.0.0.1:8000/student/ 通過注冊將姓名、頭像地址傳入數據庫中;訪問 http://127.0.0.1:8000/student/showall 將數據庫信息通過表格形式展示###過程#修改 settings.py ,templates 新增加 ’django.template.context_processors.media’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’ ], }, },]末尾增加:# global_settings#指定上傳文件存儲相對路徑(讀取文件)MEDIA_URL = ’/media/’#指定上傳文件存儲絕對路徑(存儲文件)MEDIA_ROOT = os.path.join(BASE_DIR,’media’)#創建數據庫模型 stu/models.py# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.db import models# Create your models here.class Student(models.Model): sno = models.AutoField(primary_key=True) sname = models.CharField(max_length=30) photo = models.ImageField(upload_to=’imgs’) def __unicode__(self): return u’Student:%s’%self.sname#生成數據庫遷移文件,查看數據庫表結構python makemigrations stupython migrate #修改 urls.py 因為顯示問題,增加 DEBUG 內容from django.conf.urls import url, includefrom django.contrib import adminfrom test30.settings import DEBUG, MEDIA_ROOTurlpatterns = [ url(r’^admin/’, admin.site.urls), url(r’student/’,include(’stu.urls’)),]from django.views.static import serveif DEBUG: urlpatterns+=url(r’^media/(?P<path>.*)/$’, serve, {'document_root': MEDIA_ROOT}),#修改 urls, stu/urls.py#coding:utf-8from django.conf.urls import urlimport viewsurlpatterns = [ url(r’^$’,views.index_view), url(r’^upload/$’,views.upload_view), url(r’^showall/$’,views.showall_view)]# 修改 stu/views.py#django 上傳文件方式def upload_view(request): uname = request.POST.get(’uname’,’’) photo = request.FILES.get(’photo’,’’) #入庫操作 Student.objects.create(sname=uname,photo=photo) return HttpResponse(’上傳成功!’)#顯示圖片def showall_view(request): stus = Student.objects.all() print stus return render(request,’show.html’,{’stus’:stus})# 修改 index.html<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><form action='/student/upload/' method='post' enctype='multipart/form-data'> {% csrf_token %} <p> <label for='ua'>姓名: </label> <input type='text' name='uname' /> </p> <p> <label for='ph'>頭像: </label> <input type='file' name='photo' /> </p> <p> &emsp;&emsp;&emsp;&emsp;&emsp;<input type='submit' value='注冊'/> </p></form></body></html># 增加模板文件 show.html<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><table border='1' cellspacing='0'> <tr> <th>編號</th> <th>姓名</th> <th>頭像</th> <th>操作</th> </tr> {% for stu in stus %} <tr> <td>{{ forloop.counter }}</td> <td>{{ stu.sname }}</td> <td><img src='http://m.b3g6.com/bcjs/{{ MEDIA_URL }}{{ stu.photo }}'/></td> <td> 下載</td> </tr> {% endfor %}</table></body></html>效果圖:http://127.0.0.1:8000/student/ 注冊實現數據庫錄入操作(點擊提交通過index.html 中action='/student/upload/' 將url 轉發至函數upload_view ,實現上傳功能)http://127.0.0.1:8000/student/showall/ 實現數據庫信息展示

Django 實現圖片上傳和下載功能

Django 實現圖片上傳和下載功能

圖片下載功能

### 需求在顯示頁面點擊下載實現圖片的下載功能過程:#修改 show.html ,加入 下載的超鏈接<!DOCTYPE html><html lang='en'><head> <meta charset='UTF-8'> <title>Title</title></head><body><table border='1' cellspacing='0'> <tr> <th>編號</th> <th>姓名</th> <th>頭像</th> <th>操作</th> </tr> {% for stu in stus %} <tr> <td>{{ forloop.counter }}</td> <td>{{ stu.sname }}</td> <td><img src='http://m.b3g6.com/bcjs/{{ MEDIA_URL }}{{ stu.photo }}'/></td> <td><a href='http://m.b3g6.com/student/download/?photo={{ stu.photo }}' rel='external nofollow' >下載</a></td> </tr> {% endfor %}</table></body></html>#因為 show.html href='http://m.b3g6.com/student/download ,所以要修改urls#修改 stu/urls.py,新增加 urlurl(r’^download/$’,views.download_view)#修改 stu/views.pydef download_view(request): # 獲取請求參數(圖片存儲位置) imgs/5566.jpg photo = request.GET.get(’photo’,’’) print photo # 獲取圖片文件名5566.jpg ; rindex 為字符 ’/’ 在 photo 中最后出現的位置索引;例如 # txt = 'imgs/5566.jpg' # x = txt.rindex('/') # print txt[x + 1:] 輸出結果為 5566.jpg filename = photo[photo.rindex(’/’)+1:] print filename #開啟一個流 import os path = os.path.join(os.getcwd(),’media’,photo.replace(’/’,’’)) print path with open(path,’rb’) as fr: response = HttpResponse(fr.read()) response[’Content-Type’]=’image/png’ response[’Content-Disposition’] = ’attachment;filename=’ + filename return response#訪問 http://127.0.0.1:8000/student/showall/ ,點擊下載

Django 實現圖片上傳和下載功能

以上就是Django 實現圖片上傳和下載功能的詳細內容,更多關于Django 圖片上傳和下載的資料請關注好吧啦網其它相關文章!

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
天堂√8在线中文| 免费在线看一区| 欧美日韩国产探花| 一区二区精彩视频| 精品久久97| 丝袜美腿高跟呻吟高潮一区| 丝袜美腿亚洲一区| 欧美亚洲三区| 蜜臀av一区二区在线免费观看| 视频一区视频二区中文| 亚洲成人日韩| 精品色999| 久久91导航| 久久不见久久见免费视频7| 国产成人精选| 日韩精品视频一区二区三区| 蜜桃传媒麻豆第一区在线观看| 久久一区国产| 亚洲欧美一区在线| 国产一区调教| 国产综合精品| 国产高潮在线| 亚洲精品国产嫩草在线观看| 亚洲一区有码| 久久国产三级| 国产精品2023| 国产精品二区不卡| 国产精品主播在线观看| 蜜臀久久99精品久久久画质超高清 | 免费日韩一区二区三区| 国产高清视频一区二区| 麻豆视频久久| 日韩在线观看一区二区| 国产日韩欧美一区在线| 久久久久久美女精品| 欧美日韩高清| 综合欧美精品| 精品中国亚洲| 国产精品网在线观看| 日韩一区三区| 在线免费观看亚洲| 亚洲欧美网站在线观看| 黄色亚洲大片免费在线观看| 久久精品影视| 亚洲无线观看| 国产精品主播在线观看| 国产精品a久久久久| 日韩欧美激情| 神马久久午夜| 黄色成人91| 999在线观看精品免费不卡网站| 久久天堂精品| 亚洲精品乱码| 午夜宅男久久久| 国产精品手机在线播放| 在线一区欧美| 久久久久国产精品一区三寸| 中文字幕在线官网| 波多野结衣久久精品| 欧美jjzz| 亚洲精品国产精品粉嫩| 欧美日韩免费观看一区=区三区 | 亚洲欧美不卡| 日韩国产网站| 精品伊人久久| 免费美女久久99| 麻豆理论在线观看| 国产精品美女久久久久久不卡| 国产中文字幕一区二区三区| 国产精品一区二区三区av| 激情久久中文字幕| 999久久久国产精品| 亚洲精品视频一二三区| 日本综合字幕| 国产精品99免费看| 99视频精品全国免费| 免费人成精品欧美精品| 欧美影院视频| 国产精久久一区二区| 黄色成人91| 国产精品羞羞答答在线观看| 欧美日韩在线观看视频小说| 国产传媒在线| 免费久久99精品国产| 婷婷综合在线| 99久久婷婷这里只有精品| 精品一区二区三区中文字幕| 欧美日韩亚洲一区| 成人在线视频中文字幕| 久久精品官网| 日韩高清欧美激情| 欧美一区影院| 图片区亚洲欧美小说区| 日韩精品免费一区二区夜夜嗨 | 国产高清精品二区| 亚洲欧美一级| 久久久一二三| 97精品一区| 国产精品欧美大片| 亚洲电影在线| 久热精品在线| 九九精品调教| 日本精品在线中文字幕| 国产精品mv在线观看| 亚洲欧洲美洲国产香蕉| 欧美日本久久| 欧美 日韩 国产一区二区在线视频| 精品日产乱码久久久久久仙踪林| 欧美极品一区二区三区| 久久高清免费| 久久69成人| 好看的亚洲午夜视频在线| 欧美成人a交片免费看| 国产综合色区在线观看| 成人一二三区| 久久精品动漫| 欧美日韩亚洲一区三区| 999久久久国产精品| 国产精品日本| 91成人精品在线| 国产成人精品福利| 久久精品三级| 日本亚洲欧洲无免费码在线| 精品精品国产三级a∨在线| 中文字幕视频精品一区二区三区| 久久亚洲资源中文字| 亚洲日韩中文字幕一区| 蜜桃91丨九色丨蝌蚪91桃色| 欧美欧美黄在线二区| 日韩电影免费在线观看| 久久精品卡一| 欧美激情麻豆| 亚洲国产专区校园欧美| 日本亚洲三级在线| 久久中文在线| 亚洲精品乱码久久久久久蜜桃麻豆| 黄色成人精品网站| 欧美1区免费| 日韩精品影视| 久久久久黄色| 国精品一区二区三区| 日本一二区不卡| 久久精品亚洲一区二区| 奇米色欧美一区二区三区| 综合色一区二区| 国产一区二区三区探花| 蜜臀av一区二区在线免费观看 | 亚洲夜间福利| 日本国产一区| 国产精品日韩| 亚洲毛片网站| 国产精品色在线网站| 国产精品视频一区视频二区| 久久免费影院| 久久久精品国产**网站| 国产精品普通话对白| 亚洲成av人片一区二区密柚 | 亚洲区欧美区| 日韩在线电影| 国产欧美一区二区色老头| 欧美日韩亚洲一区在线观看| 青青草精品视频| 国产va在线视频| 日韩视频一区| 国内精品伊人| av最新在线| 国产精品13p| 亚洲在线免费| 欧美日韩国产欧| 伊人久久国产| 欧美一级一区| 99久久精品费精品国产| 911精品国产| 蜜臀va亚洲va欧美va天堂| 国产成人久久精品一区二区三区| 国产不卡精品| 精品日本视频| 欧美成人基地| 国产精品99一区二区三| 深夜日韩欧美| 日韩精品欧美激情一区二区| 日韩午夜在线| 亚洲一区日韩| 亚洲精品中文字幕99999| 亚洲人www| 色婷婷成人网| 亚洲二区精品| 日韩欧美一区二区三区免费观看| 日韩av中文在线观看| 一二三区精品| 亚洲激情av| 激情综合激情| 久久九九电影| 亚洲欧美日本日韩| 狠狠久久伊人中文字幕| 日韩深夜视频| 久久福利影视| 日韩一区二区三区四区五区| 日韩综合一区二区三区| 视频一区视频二区中文|