标签:访问 red request 文件 参数 method **kwargs 上进 现在
from django.http import HttpResponse
from django.views.generic import View
from django.shutcuts import render, redirect, reverse
from django.utils.decorators import method_decorator
<!--推荐:可以直接在类视图上直接使用 method_decorator方法为类视图的dispatch方法添加装饰器,这种方法相对简单-->
<!--并且在使用多个装饰器的时候,同样可以传递一个列表,列表中包含多个装饰器。-->
@ method_decorator(login_required, name='dispatch')
<!--name参数代表的是要在类视图的哪个函数上添加装饰器-->
class Profile_view(View):
def get(self, request):
return HttpResponse('个人中心')
<!--不推荐:可以直接在dispatch方法上添加装饰器,但是这样的话,相对来说比较麻烦,因为还得重写dispatch方法-->
<!--@method_decorator(login_required)-->
<!--def dispatch(request, *args, **kwargs):-->
<!-- return super(Profile_view, self).dispatch(**kwargs)-->
def login_required(fuc):
def wrapper(request, *args, **kwargs):
username = request.GET.get('username')
if username:
return fuc(request)
else:
return redirect(reverse('Profile:login'))
def login(request):
return HttpResponse('success')
from django.urls import path
from . import views
from .views import Profile_view
app_name = 'Profile'
urlpatterns = [
path('', Profile_view.as_view()),
path('login/', views.login, name='login'),
]
from django.urls import path, include
urlpatterns = [
path('Profile/', include('Profile.urls')),
]
标签:访问 red request 文件 参数 method **kwargs 上进 现在
原文地址:https://www.cnblogs.com/guyan-2020/p/12306204.html