Django blog项目《八》:用户登录和用户登出

本文详细介绍了在Django博客项目中实现用户登录和登出的步骤,包括urls.py、views.py、forms.py的配置,以及前端js的实现。对于用户登录,重点讲解了urls路由设置、视图函数编写、表单处理和前端交互。用户登出部分则涵盖了登出url的配置和视图处理。
摘要由CSDN通过智能技术生成


注册页面 写完了后现在就是写登录页面,有了注册页面的编写过程,登录页面的写法就更简单了,需要验证三个字段:登录名、密码、是否勾选。登录采用主要逻辑在forms表单中完成。登出很简单,只需要使用内置的logout方法就行。

一、用户登录

1. urls.py配置

users/urls.py

from django.urls import path
from users import views

app_name = "users"

urlpatterns = [
    path("login/", views.LoginView.as_view(), name="login"),
]

2. views.py配置

users/views.py

import json
import logging

from django.views import View
from django.shortcuts import render
 
from users import models
from users.forms import RegisterForm, LoginForm
from utils.res_code.res_code import Code, error_map
from utils.res_code.json_function import to_json_data


logger = logging.getLogger("django")


class LoginView(View):
    """
    # 1. 创建一个LoginView类
    deal login  logic
    param: login_name、password、remember_me
    """
    # 2. 创建一个get方法来跳转
    def get(self, request):
        return render(request, "users/login.html")

    # 3. 创建一个post方法来处理主要逻辑
    def post(self, request):

        # 4. 接收前端传来的数据
        try:
            json_data = request.body
            if not json_data:
                return to_json_data(errno=Code.PARAMERR, errmsg=error_map[Code.PARAMERR])  # 参数错误

            # 5. 将数据转化为字典
            dict_data = json.loads(json_data)

        except Exception as e:
            return to_json_data(errno=Code.UNKOWNERR, errmsg=error_map[Code.UNKOWNERR])  # 未知错误

        # 6. 将数据和request传递给LoginForm表单进行验证
        form = LoginForm(data=dict_data, request=request)

        # 7. 数据校验成功返回数据给前端
        if form.is_valid():
            return to_json_data(errmsg="恭喜您登录成功")

        else:
            err_msg_list = []

            for item in form.errors.values():
                err_msg_list.append(item[0])
            err_str = "/".join(err_msg_list)

            return to_json_data(errno=Code.PARAMERR, errmsg=err_str)


3. forms.py配置

users/forms.py

# -*- coding: utf-8 -*-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值