亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

django 裝飾器 檢測登錄狀態操作

瀏覽:148日期:2024-09-28 16:16:39

1、檢測登錄狀態

base.py

def checkLogin(func): ''' 查看session值用來判斷用戶是否已經登錄 :param func: :return: ''' def warpper(request,*args,**kwargs): if request.session.get(’username’, False): return func(request, *args, **kwargs) else: return HttpResponse(’/login’) return warpper

index.py:

from proApp import models, article, base@base.checkLogindef index(request): dict = { 'article_list': article.getArticle(), } return render(request, ’index.html’,dict)

1報錯:

The view proApp.base.warpper didn’t return an HttpResponse object. It returned None instead.

django 裝飾器 檢測登錄狀態操作

解決辦法: 判斷用戶session后,一定要return返回值

2、登錄檢查成功,路由未被更改,頁面未跳轉

django 裝飾器 檢測登錄狀態操作

解決辦法: redirect(‘跳轉路徑和名稱‘)方法,頁面跳轉

from django.shortcuts import render,render_to_response,redirectdef checkLogin(func): ''' 查看session值用來判斷用戶是否已經登錄 :param func: :return: ''' def warpper(request,*args,**kwargs): if request.session.get(’username’, False): return func(request, *args, **kwargs) else: return redirect(’/login’) return warpper

注意:render與redirect兩點區別:

1、render返回一個登陸成功后的頁面,刷新該頁面將回復到跳轉前頁面。而redirect則不會

2、render返回一個登陸成功頁面,不會經過url路由分發系統,也就是說,不會執行跳轉后url的試圖函數。這樣,返回的頁面渲染不成功;而redirect是跳轉到指定頁面,當登陸成功后,會在url路由系統進行匹配,如果有存在的映射函數,就會執行對應的映射函數。

補充知識:Django中的中間件與類視圖

類視圖

函數視圖:以函數的方式定義的視圖稱為函數視圖

類視圖:以類的方式定義的視圖稱為類視圖

代碼可讀性好

類視圖相對于函數視圖有更高的復用性

因此大部分視圖都使用類進行封裝。

from django.views import Viewclass ClassView(View): '''類視圖的介紹''' def get(self, request): '''get請求方法''' print(’get請求方法進次函數’) return HttpResponse(’get請求方法’) def post(self, request): '''post請求方法進此函數''' print(’post請求方法’) return HttpResponse(’post請求方法’) ''' 在url中配置 ''' urlpatterns = [ url(r'^classview/$', views.ClassView.as_view()) #ClassView是一個類 需要調用Django自帶的as_view方法轉換為view]

中間件

中間件

Django中的中間件是一個輕量級、底層的插件系統,可以介入Django的請求和響應處理過程,修改Django的輸入或輸出。中間件的設計為開發者提供了一種無侵入式的開發方式,增強了Django框架的健壯性。

我們可以使用中間件,在Django處理視圖的不同階段對輸入或輸出進行干預。

#先在子應用文件下新建(自定義).py文件# 自定義中間鍵def outer(fuc): print(’調用前’) def inner(*args, **kwargs): print(’執行前’) data = fuc(*args, **kwargs) print(’ 執行后’) return data return inner#2. settings.py的middleware下面加入自定義的中間件’user1.middlewares.outer’ # 自定義中間件

django 裝飾器 檢測登錄狀態操作

django 裝飾器 檢測登錄狀態操作

django 裝飾器 檢測登錄狀態操作

以上這篇django 裝飾器 檢測登錄狀態操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 久久99爱视频 | 成人爽a毛片在线视频网站 成人爽爽大片在线观看 | 孕妇xxxx视频在线 | 91久久精品国产91性色tv | 日本欧美一级二级三级不卡 | 深夜一级毛片 | 亚洲成aⅴ人片在线影院八 亚洲成av人片在线观看 | 国产成人久久一区二区三区 | 在线a亚洲视频播放在线观看 | 国产一区二区精品在线观看 | 日韩精品另类天天更新影院 | 国产视频自拍偷拍 | 久草在线免费资源站 | 中文字幕一区二区三区精彩视频 | 国内精品小视频在线 | 中文国产成人精品久久水 | 性欧美在线 | 日本色哟哟 | 国产三级在线观看免费 | 国产精品私人玩物在线观看 | 99久久精品国产片 | 日韩黄色片在线观看 | 杨晨晨福利视频 | 国产激情一区二区三区在线观看 | 日本综合欧美一区二区三区 | 国产欧美一区二区精品性色 | 久久亚洲私人国产精品va | 久久精品国产一区二区三区不卡 | 全部免费的毛片在线看美国 | 国产深夜福利视频网站在线观看 | 久色乳综合思思在线视频 | 久久久久久a亚洲欧洲aⅴ | 欧美日韩加勒比一区二区三区 | 女人张开腿让男人捅视频 | 中文字幕在线播 | 新婚第一次一级毛片 | 国产一区二区福利久久 | 精品中文字幕久久久久久 | 精品小视频在线观看 | 99精品小视频 | 国产一区二区三区在线看 |