名字 檔案上傳檔案
# ajax檔案上傳def fileupload(request):
if request.method == 'get':
return render(request, 'fileupload.html')
if request.is_ajax():
name = request.post.get('name')
# 檔案物件
myfile = request.files.get('myfile')
import os
path = os.path.join('media', name)
with open(path, 'wb') as f:
for line in myfile:
f.write(line)
return httpresponse('success')
# 分頁器from django.core.paginator import paginator
def paging(request):
users = userinfo.objects.all().order_by('pk')
paginator = paginator(users, 20)
try:
currentpage = int(request.get.get('page', 1)) # 預設顯示第一頁
page = paginator.page(currentpage)
except exception as e:
# 出錯時顯示第一頁
currentpage = 1
page = paginator.page(currentpage)
# 傳入頁碼數,拿到的就是當前頁物件
page = paginator.page(currentpage)
# 1 總頁數是否大於11,當總頁碼數大於11
if paginator.num_pages > 11:
# 1.1 當前頁碼數是否小於6
if currentpage <= 6:
# 1.1.1 噹噹前頁碼小於6的時候,就生成11個頁碼數
page_range = range(1, 12)
# 1.2 噹噹前頁碼+5 大於等於總頁碼數
elif currentpage + 5 >= paginator.num_pages:
# 1.2.1 往後推11個頁碼數
page_range = range(paginator.num_pages - 10, paginator.num_pages + 1)
# 1.3 生成一個左5 右5的區間
else:
page_range = range(currentpage - 5, currentpage + 6)
# 2 總頁碼數不大於11 ,有多少,顯示多少
else:
page_range = paginator.page_range
return render(request, 'page.html', locals())
idname
age
}}}}
}
from django import forms1 預設編碼urlencode,後端按照原來form表單提交的形式取值就可以了()# 繼承form這個類
class myform(forms.form):
# 限制name這個欄位最長為8,最短為3
name=forms.charfield(min_length=3,max_length=8,label='使用者名稱',required=true,error_messages=)
pwd=forms.charfield(min_length=3,max_length=8,label='密碼',error_messages=)
email=forms.emailfield(label='郵箱',error_messages=)
# ajax register
def register(request):
if request.method == 'get':
myform=myform()
return render(request, 'register.html',locals())
else:
# 生成物件,傳參,傳字典,要校驗資料的字典
# myform=myform(request.post)
# 自己寫要校驗的字典,資料多了,多的是不校驗的,但是cleaned_data中也沒有多出來的資料
# dic=
# dic=
# dic =
name=request.post.get('name')
pwd=request.post.get('pwd')
email=request.post.get('email')
dic =
print(dic)
myform = myform(dic)
# 所有字典都校驗通過,它就是true的
if myform.is_valid():
# 取出校驗通過的資料
clean_data=myform.changed_data
print(clean_data)
# models.userinfo.objects.create(**clean_data)
else:
# 所有的錯誤資訊
# 只要是校驗通過的值,都在cleaned_data中放著
print(myform.changed_data)
print(myform.errors.as_data())
# 字典型別
print(type(myform.errors))
print(myform.errors.get('name'))
from django.forms.utils import errordict
return httpresponse('ok')
2 上傳檔案,form-data編碼,後端按照原來form表單提交的形式取值就可以了,取資料從post中取,取檔案從files中取
3 上傳json格式,django不會處理資料,需要自己處理,自己從body體中取出資料處理
Python Django Ajax進階3
中介軟體顧名思義,是介於request與response處理之間的一道處理過程,相對比較輕量級,並且在全域性上改變django的輸入與輸出。因為改變的是全域性,所以需要謹慎實用,用不好會影響到效能 1 寫一個類,繼承middlewaremixin, 2 在類中寫方法 process request 3 在...
Django Ajax
json是一種資料交換格式 json是js的一個子集 json裡面只認雙引號 json一定是一個字串 功能 是 js 的一種向後端伺服器傳送...
Ajax django
ajax 目前最常用的就是通過jquery來使用ajax,jquery封裝了ajax views from django shortcuts import render httpresponse render to response create your views here def ajax r...