Djangao view的相关操作

创建类

我们是通过类方法来创建view的,创建之后继承view基类,它的下面就有get和post请求的处理方法

from audioop import reverse
from django.contrib.auth import authenticate, login
from django.shortcuts import render
from django.views.generic.base import View
from django.http import HttpResponseRedirect
from django.urls import reverse

class LoginView(View):
    def get(self, request, *args, **kwargs):
        #返回相关的视图
        return render(request, "html/login.html")

    def post(self, request, *args, **kwargs):
        #获取相关的数据
        user_name = request.POST.get("username","")
        password = request.POST.get("password","")

        #用于通过用户和密码查询用户是否存在
        user = authenticate(username=user_name, password=password)

        if user is None:
            return render(request, "html/login.html", {"msg": "用户名或密码错误"})
        #只要使用auth.login(request, user)登录操作后,后续即可从request.user拿到当前登录的用户对象
        login(request, user)
        #这里的index是在urls配置路由的name
        return HttpResponseRedirect(reverse("index"))

我们利用authenticate()方法,来对用户进行验证。该方法通常接收username与password作为参数

配置urls

我们导入了TemplateView通过它下面的.as_view() 这个方法指定html,在后面加入name

from django.urls import path
from django.views.generic import TemplateView

import xadmin

from apps.users.views import LoginView

urlpatterns = [
    path('xadmin/',xadmin.site.urls),
    path('', TemplateView.as_view(template_name="html/index.html"),name='index'),
    path('login/', LoginView.as_view(), name="login")
]

HTML的设置

在前端判断是否登录可以使用
{% if request.user.is_authenticated %}
来进行判断是否登录

posted on 2022-06-23 15:16  一纸荒年003  阅读(77)  评论(0)    收藏  举报