如何在 Django 中使用 URL 包装器来实现用户身份验证?
要在 Django 中使用 URL 包装器来实现用户身份验证,可以使用 Django 自带的装饰器 @login_required
。该装饰器可以将视图函数包装起来,并且只有已登录用户才能访问被包装的视图函数。
具体实现步骤如下:
- 在
views.py
中定义视图函数,例如:
from django.contrib.auth.decorators import login_required from django.shortcuts import render @login_required def my_view(request): return render(request, 'my_template.html')
- 在
urls.py
中配置 URL 路由器,并将视图函数与 URL 匹配,如下所示:
from django.urls import path from .views import my_view urlpatterns = [ path('my-url/', my_view, name='my_view'), ]
在上述代码中,my_view
视图函数被 @login_required
装饰器包装,因此只有已登录用户才能访问 my_view
视图。
其中,第一个参数 'my-url/'
是 URL 的路径,第二个参数 my_view
是视图函数的名称,第三个参数 'my_view'
是视图函数的别名,可以在模板中使用。
这样,当用户访问 /my-url/
路径时,如果用户未登录,则会被重定向到登录页面进行身份验证,验证通过后才能访问 my_view
视图函数。
示例代码:
# views.py from django.contrib.auth.decorators import login_required from django.shortcuts import render @login_required def my_view(request): return render(request, 'my_template.html')
# urls.py from django.urls import path from .views import my_view urlpatterns = [ path('my-url/', my_view, name='my_view'), ]
<!-- my_template.html --> {% extends 'base.html' %} {% block content %} <h1>Welcome to pidancode.com!</h1> {% endblock %}
相关文章