Django实战4——注册与登陆功能开发

本文介绍了Django实战中如何配置首页和登录页面,包括URL路由配置、视图(View)的CBV和FBV两种方式,以及登录验证的详细步骤。通过表单验证简化了错误处理,并展示了注册功能的Form设计和View实现。同时提醒开发者注意在URL配置中包含View。
摘要由CSDN通过智能技术生成

配置首页和登陆页面

首先进入urls.py,
在这里插入图片描述
可以像上面这样配置url,也可以使用django自带的类来辅助配置,不用写后台的方法。

from django.views.generic import TemplateView

url建议写成下图样式,这样的话后期如果要修改路径就十分方便,只需要在urls中修改即可。
在这里插入图片描述

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

import xadmin
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('xadmin/', xadmin.site.urls),
    path('index/', TemplateView.as_view(template_name='my_index.html'),name='index'),
    path('login/', TemplateView.as_view(template_name='login.html'), name='login'),
    path('logout/', TemplateView.as_view(template_name='logout.html'), name='logout'),
    path('register/', TemplateView.as_view(template_name='register.html'), name='register'),
    # user
    path('user_center/', TemplateView.as_view(template_name='user_center.html'), name='user_center'),
    path('user_message/', TemplateView.as_view(template_name='user_message'), name='user_message'),
    # course
    path('course_list/', TemplateView.as_view(template_name='course_list.html'), name='course_list'),
    # teacher
    path('teacher_list/', TemplateView.as_view(template_name='teacher_list.html'), name='teacher_list'),

]

在html表示跳转时可以这样使用: <a class="personcenter fl" href="{% url 'user_center' %}">进入个人中心</a>

view

完成view的两种方式:
1、CBV:class base view
2、FBV:function base view

在之前的学习中使用的是FBV,这次开发使用的是CBV

# users.view
from django.shortcuts import render
from django.views.generic.base import View


class LoginView(View):
    def get(self, request):
        pass

    def post(self, request):
        pass

点进view的源码,找到dispatch,将其参数复制过来

    def get(self, request, *args, **kwargs):
        pass

在urls.py中引用

from apps.users.views import LoginView
    path('login/', LoginView.as_view(), name='login'),

登陆验证的配置
1、获取输入的用户名与密码

class LoginView(View):
    def get(self, request, *args, **kwargs):
        return render(request, 'login.html')

    def post(self, request, *args, **kwargs):
        user_name = request.POST.get("username", "")
        password = request.POST.get("password", "")

2、验证
方法一:

        from apps.users.models import UserProfile
        user = UserProfile.objects.get(username = user_name)
        '''1、通过用户名查询到用户是不合理的,需要使用密码校验
           2、数据库中存储的密码是密文,查询时需要加密密码后查询'''

方法二:可以使用内置方法

from django.contrib.auth import authenticate
class LoginView(View):
    def get(self, request, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值