久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

django 裝飾器 檢測登錄狀態(tài)操作

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

1、檢測登錄狀態(tài)

base.py

def checkLogin(func): ''' 查看session值用來判斷用戶是否已經(jīng)登錄 :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 裝飾器 檢測登錄狀態(tài)操作

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

2、登錄檢查成功,路由未被更改,頁面未跳轉(zhuǎn)

django 裝飾器 檢測登錄狀態(tài)操作

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

from django.shortcuts import render,render_to_response,redirectdef checkLogin(func): ''' 查看session值用來判斷用戶是否已經(jīng)登錄 :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兩點區(qū)別:

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

2、render返回一個登陸成功頁面,不會經(jīng)過url路由分發(fā)系統(tǒng),也就是說,不會執(zhí)行跳轉(zhuǎn)后url的試圖函數(shù)。這樣,返回的頁面渲染不成功;而redirect是跳轉(zhuǎn)到指定頁面,當(dāng)?shù)顷懗晒螅瑫趗rl路由系統(tǒng)進行匹配,如果有存在的映射函數(shù),就會執(zhí)行對應(yīng)的映射函數(shù)。

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

類視圖

函數(shù)視圖:以函數(shù)的方式定義的視圖稱為函數(shù)視圖

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

代碼可讀性好

類視圖相對于函數(shù)視圖有更高的復(fù)用性

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

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

中間件

中間件

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

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

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

django 裝飾器 檢測登錄狀態(tài)操作

django 裝飾器 檢測登錄狀態(tài)操作

django 裝飾器 檢測登錄狀態(tài)操作

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

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 国产色| 日本久久国产 | 久久韩国| 精品在线 | 人妖 丝袜 另类 亚洲 | 色精品| 中文字幕 视频一区 | 亚洲久久在线 | 久久色av | 1区2区视频 | 一级片视频在线观看 | 色综合久久网 | 欧洲免费毛片 | 国产一区二区三区免费在线 | 久久久精品 | 91精品国产91综合久久蜜臀 | 日韩一区精品视频 | 国产成人高清在线 | 久久精品中文字幕一区 | 亚洲激情久久 | 久久精品国产一区 | 成人国产免费视频 | 国产精品人人做人人爽 | 精品国产综合 | 国产一区二区三区四区在线观看 | 一区二区视频 | 在线第一页| 激情久久av一区av二区av三区 | 亚洲精品久久久一区二区三区 | 最新国产精品 | 色约约精品免费看视频 | 一区二区三区四区在线 | 99精品国产热久久91蜜凸 | 免费不卡视频 | 国产亚洲一区二区三区在线观看 | 精品国产青草久久久久福利 | 成人在线国产 | 久久91视频| 黄色片在线免费观看 | 精品国产乱码久久久久久久软件 | 欧美视频免费 |