Django學習總結之中介軟體與檔案操作
阿新 • • 發佈:2018-12-10
中介軟體: 面向切面程式設計 底層輕量級外掛 可以介入請求與響應 咱們以前接觸的程式設計方式: python:面向物件 C語言:面向過程 喝茶: 面向物件:燒開水 泡茶 --> 找個傭人 把這些全部給我實現了 我只做喝茶的事情 面向過程:燒開水 所有東西自己實現 request.META['REMOTE_ADDR'] 拿到訪問的IP地址
在對異常攔截的時候一定要注意: 1.將debug模式調為True,然後把對外網的公佈給關掉 2.在切面函式裡面進行反向解析時會報型別錯誤,建議直接返回結果 3.異常最好不要try,交給系統執行,然後由系統處理
搶優惠券,第一:跳轉的url一定要注意 第二:url寫的時候,注意後面把斜槓加上 第三:先判斷來的路徑 然後再去獲取提交的使用者名稱
程式碼示例: def process_request(self,request): ip = request.META["REMOTE_ADDR"] print(ip) if request.path == "/App/qiang/": uname = request.POST.get('username') print(uname) if uname == "zhoujiajia": return HttpResponse("你這輩子算搶不到了") elif ip == "10.8.153.137": return HttpResponse("充錢吧")
檔案上傳: 配置資訊:
第一步:在工程目錄下建立一個靜態資料夾:static 第二步:將static資料夾配置到settings檔案下方 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ] 第三步:在static資料夾下面建立一個新的資料夾,命名問uploadefiles 第四步:在settings下方配置uploadefiles路徑資訊 MEDIA_ROOT=os.path.join(BASE_DIR,r'static/uploadefiles')
檔案載入:
def get_file(request,id):
# 根據路由傳參匹配物件
users = UserModel.objects.filter(pk=id)
user = users.first()
# 這裡必須要使用.url使用,返回一個相對路徑
url = "/static/uploadefiles/" + user.u_icon.url
#將拿到得路徑返回給頁面
print(url)
data = {
"u_icon":url ,
}
return render(request, "image.html", context=data)
分頁:
def get_user(request, page_num):
# 拿到資料集
users = UserModel.objects.all()
# 將資料集以及每頁顯示多少條放到物件裡
paginator = Paginator(users, 3)
# 拿到你想要看的那一頁的資料集合
page = paginator.page(page_num)
# 當前頁面上所有的資料物件
object_list = page.object_list
return render(request, 'userlist.html', context={"users":object_list})