Django打造在线教育平台_day_4: 完成用户登录功能

1、把功能写在users/views.py文件中

from django.shortcuts import render
from django.contrib.auth import authenticate, login #倒入验证输入是否合法模块和登录模块
# Create your views here.

def user_login(request):
    if request.method == ‘POST‘:
        user_name = request.POST.get(‘username‘, ‘‘)
        pass_word = request.POST.get(‘password‘, ‘‘)

        # 向数据库发起验证请求用户名和密码是否正确
        # 正确会返回一个对象, 不正确会返回None
        user = authenticate(username=user_name, password=pass_word)
        if user is not None:
            login(request, user)  # 登录
            return render(request, ‘index.html‘)
        else:
            return render(request, "login.html",{‘msg‘: "用户名或者密码错误"})        elif request.method == ‘GET‘: return render(request, "login.html", {})

2、修改login.html文件

登录失败提示:

3、运行程序输入用户密码,出现以下错误,是Django安全机制影响的

在login.html文件加入以下代码

重新运行程序

修改index.html达到登录成功显示个人中心

修改urls.py文件

from users.views import user_login

urlpatterns = [

    url(r‘^login/$‘, user_login, name=‘login‘),
]

自定义登录方式(账户邮箱都可以登录)

在users/views.py添加如下代码

from django.contrib.auth.backends import ModelBackend
from django.db.models import Q

from .models import UserProfile
# Create your views here.

class CustomBackend(ModelBackend):
    def authenticate(self, username=None, password=None, **kwargs):
        try:
            user = UserProfile.objects.get(Q(username=username)|Q(email=username))
            if user.check_password(password):
                return user
        except Exception as e:
            return None

配置settings.py添加

AUTHENTICATION_BACKENDS = (
    ‘users.views.CustomBackend‘,
)
时间: 2024-08-01 10:46:12

Django打造在线教育平台_day_4: 完成用户登录功能的相关文章

Django打造在线教育平台_day_4: 完成注册功能

1.把注册html页面复制到templats目录下 2.把功能写在users/views.py文件中 3.urls.py文件添加代码 from users.views import RegisterView urlpatterns = [ url(r'^register/$', RegisterView.as_view(), name='register'), ] 4.修改index与register.html <a style="color:white" class="

Django打造在线教育平台_day_4: 前台逻辑的编写之配置首页与登录

一.配置首页 1.把前端index.html文件复制到项目templates目录下 2.在项目根目录下创建一个static文件夹用来存放css.js.images.media文件 3.在urls.py文件夹中配置 #添加如下代码 from django.views.generic import TemplateView urlpatterns = [ url(r'^$', TemplateView.as_view(template_name='index.html'), name='index'

Django打造在线教育平台_day_3: 搭建后台管理系统Django自带的admin

1.后台管理系统的特点:权限管理.少前端样式.快速开发 2.Django自带的admin后台管理系统,新建项目时会自动建立,admin也可以看成一个app 运行了程序打开链接:http://127.0.0.1:8000/admin/,就进入了后台管理系统登录页面 3.新建超级用户: Tools 工具栏运行 run manage.py Task 输入:createsuperuser,再根据提示输入用户名.邮箱.密码 4.登录成功: 5.把系统语言设置为中文与设置本地时间:修改MxOnline/se

Django打造在线教育平台_day_2:新建users app 编写models之扩展user表

1.使用pycharm创建app Tools 工具栏运行 run manage.py Task 输入:startapp users 2.查看django生成的默认的users表auth_user,看字段能否满足需要的,不能就在users/models.py中编写models自定义user表继承auth_user的字段. from django.db import models # AbstractUser包含的Django默认生成的user字段 from django.contrib.auth.

Django打造在线教育平台_day_2:新建users app 编写models之完善

1.避免循环引用:A引用B,B引用A 解决这种问题的方法就是app分层,前面我们设计了4个app,现在把与用户操作相关的放在operation models.py中就可以解决问题: 2.邮箱验证码的models和banner轮播图的models都放在users/models.py文件中(因为与另外几个关系不大) """import规范: 第一部分为python自带模块 第二部分为第三方倒入模块 第三部分为自定义模块 """ from dateti

Django打造在线教育平台_day_3: 搭建后台管理系统Xadmin

xadmin是比Django自带的admin更加强大的系统 1.安装xadmin的两种方式: 方式一:pip install xadmin 方式二:github下载最新的源码(推荐,因为功能最新) 2.方式一安装:虚拟环境下 pip install xadmin python3的环境安装xadmin时,直接pip install xadmin出现 README.rst这个文件的编码有问题,可以内容没什么重要的,可以直接到github上下载安装包,然后新建一个txt空文件,把文件名改成README

Django打造在线教育平台_day_3: 搭建后台管理系统Xadmin之其他app的数据表注册

courses/adminx.py import xadmin from .models import Course, Lesson, Video, CourseResource class CourseAdmin(object): list_display = ['name', 'desc', 'detail', 'degree','learn_times', 'students','fav_nums','image','click_nums','add_time'] # 列表显示 searc

Django打造在线教育平台_day_3:全局配置

1.主题设置:在users/adminx.py文件中 from xadmin import views class BaseSettings(object): enable_themes = True # 使用主题功能 use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSettings) 效果如下: 2.修改与 在users/adminx.py文件中 from xadmin import views class

Django打造在线教育平台_day_3:之处理外建搜索无效

下午的courser外建注册了,但是在章节中筛选没有 修改代码