Django的檔案上傳和分頁

2022-08-22 13:21:09 字數 3601 閱讀 9781

一.檔案上傳

請求頭contenttype

contenttype指的是請求體的編碼型別,常見的型別共有3種:

這又是乙個常見的 post 資料提交的方式。我們使用表單上傳檔案時,必須讓

檢視部分

def

index(request):

print(request.body) #

原始的請求體資料

print(request.get) #

get請求資料

print(request.post) #

post請求資料

print(request.files) #

上傳的檔案資料

return render(request,"

index.html

")

基於ajax的檔案上傳

模版

檢視

def

index(request):

ifrequest.is_ajax():

print(request.body) #

原始的請求體資料

print(request.get) #

get請求資料

print(request.post) #

post請求資料

print(request.files) #

上傳的檔案資料

檢查瀏覽器的請求頭:

1content-type: multipart/form-data; boundary=----webkitformboundaryawl9k5zmitazx3ft

二.分頁器

'''批量匯入資料:

booklist=

for i in range(100):

book.objects.bulk_create(booklist)

''''''

分頁器的使用:

book_list=book.objects.all()

paginator = paginator(book_list, 10)

print("count:",paginator.count) #資料總數

print("num_pages",paginator.num_pages) #總頁數

print("page_range",paginator.page_range) #頁碼的列表

page1=paginator.page(1) #第1頁的page物件

for i in page1: #遍歷第1頁的所有資料物件

print(i)

print(page1.object_list) #第1頁的所有資料

page2=paginator.page(2)

# 拋錯

#page=paginator.page(12) # error:emptypage

#page=paginator.page("z") # error:pagenotaninteger

'''book_list=book.objects.all()

paginator = paginator(book_list, 10)

page = request.get.get('

page

',1)

currentpage=int(page)

try:

print

(page)

book_list =paginator.page(page)

except

pagenotaninteger:

book_list = paginator.page(1)

except

emptypage:

book_list =paginator.page(paginator.num_pages)

return render(request,"

index.html

",)

index.html

"en

">class="

container

">

分頁器

如果頁數多時

def

index(request):

book_list=book.objects.all()

paginator = paginator(book_list, 15)

page = request.get.get('

page

',1)

currentpage=int(page)

#如果頁數十分多時,換另外一種顯示方式

if paginator.num_pages>11:

if currentpage-5<1:

pagerange=range(1,11)

elif currentpage+5>paginator.num_pages:

pagerange=range(currentpage-5,paginator.num_pages+1)

else

: pagerange=range(currentpage-5,currentpage+5)

else

: pagerange=paginator.page_range

try:

print

(page)

book_list =paginator.page(page)

except

pagenotaninteger:

book_list = paginator.page(1)

except

emptypage:

book_list =paginator.page(paginator.num_pages)

return render(request,"

index.html

",locals())

django 檔案上傳

檔案上傳 當django處理上傳乙個檔案的時候,檔案資料被放在request.files中。這個文件解釋檔案怎麼樣被儲存在磁碟上或者記憶體中,怎樣定製預設的行為。基本檔案上傳 考慮乙個包含filefield的簡單的表單 from django import forms class uploadfil...

django 檔案上傳

檔案上傳 當django處理上傳乙個檔案的時候,檔案資料被放在request.files中。這個文件解釋檔案怎麼樣被儲存在磁碟上或者記憶體中,怎樣定製預設的行為。基本檔案上傳 考慮乙個包含filefield的簡單的表單 from django import forms class uploadfil...

Django檔案上傳

lang en charset utf 8 titletitle head action home method post enctype multipart form data type file name file type submit value 提交 p form div body htm...