django用户认证

用户登录:

def logon(request):
    errors_list = []
    if request.method == ‘POST‘:
        u = request.POST[‘uname‘]
        p = request.POST[‘upass‘]
        #验证用户
        user = authenticate(username=u, password=p)
        if user is not None:
            auth_login(request, user)
            #登录成功后重定向到主页
            return HttpResponseRedirect("/sinfors/")
        else:
            try:
                #检查用户密码是否正确
                if not auth_User.objects.get(username = u).check_password(p):
                    errors_list.append(u + ‘ password is not correct‘)
            #检查用户是否存在(auth_User.objects.get(username = u))
            except auth_User.DoesNotExist:
                errors_list.append(u + ‘ does not exist‘) 

    return render(request, ‘sinfors/login.html‘, {‘errors_list‘:errors_list})

页面添加认证:

#对页面增加验证
@login_required(login_url="/sinfors/logon/")
def index(request):
    servers = infor.objects.all()
    #验证如果用户登录成功,则取相应的用户名显示在主页
    if not request.user.is_anonymous():
        user_loggedin = request.user
    else:
        user_loggedin = ‘Guest‘
    context = {‘servers‘:servers,‘user_loggedin‘:user_loggedin}
    return render(request,‘sinfors/index.html‘,context)

新增用户,修改/验证密码:

#新建用户
user = User.objects.create_userusername=‘‘,password=‘‘,email=‘‘)
user.save #不使用user.save()

#重置密码
user.set_password(passeord=‘‘)
user.save 

#检查用户输入的密码是否正确
user.check_password(‘password‘)
时间: 2024-10-13 11:28:37

django用户认证的相关文章

Django 用户认证及OneToOneField

Django 用户认证如果自己不想写 就可以用django自带的认证 首选导入模块 models.py #!/usr/bin/env python #_*_ coding:utf8 _*_ from __future__ import unicode_literals from django.db import models from django.core.exceptions import ValidationError from django.contrib.auth.models imp

Django用户认证系统 authentication system

Django集成了用户登陆/验证/登出的模块,可以直接拿来使用,也可以进行定制,使用起来非常方便. 一,创建Django工程 $ django-admin.py startproject mysite 工程目录结构如下 [email protected]:~/Study/django$ tree mysite/ mysite/ ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py 1 di

16 django用户认证组件

django用户认证组件 思考: 前一篇提到的seesion,当用户登录后会保存session. 浏览器再次访问会带上服务器返回的session:sessionid ---> 登录时随机生成的key 服务器拿到sessionid后去数据库匹配,匹配到后拿到一个字典数据:{a:b,c:d} 当数据有变化时,会更新某个值,如 c:d --> c:e ,那么直接更新数据库 {a:b,c:e},sessionid并不会变化,然后将原来的sessionid继续回传给浏览器. 这样的处理机制存在什么样的问

2014-10-27 Django用户认证

Django自身带有用户认证的模块. 如图:account_login是用户自定义的函数. auth.authenticate(username=username,password=password)用于验证用户名和登录密码.若存在该用户名和密码则返回一个非空值. (注意:Django在admin后台的User中验证用户.若想取消该用户的登录权限,可点选该用户名并下拉页面将其属性值Active去掉勾选.) 可通过request.user获取用户名. auth.login(request,user

django用户认证系统——登录4

用户已经能够在我们的网站注册了,注册就是为了登录,接下来我们为用户提供登录功能.和注册不同的是,Django 已经为我们写好了登录功能的全部代码,我们不必像之前处理注册流程那样费劲了.只需几分钟的简单配置,就可为用户提供登录功能.接下来就来看看如何使用内置的登录功能. 引入内置的 URL 模型 Django 内置的登录.修改密码.找回密码等视图函数对应的 URL 模式位于 django.contrib.auth.urls.py 中,首先在工程的 urls.py 文件里包含这些 URL 模式.打开

10.Django用户认证组件

用户认证组件: 功能:用session记录登录验证状态: 前提:用户表,django自带的auth_user 创建超级用户:python manage.py createsuperuser           kris的密码是abc123456 基于用户认证组件的登录验证信息储存 views.py from django.shortcuts import render, HttpResponse, redirect # Create your views here. from django.co

Django 用户认证组件

auth模块 # 创建超级用户 python manage.py createsuperuser from django.contrib import auth django.contrib.auth中提供了许多方法: authenticate() 提供了用户认证功能,即验证用户名以及密码是否正确,一般需要username .password两个关键字参数. 如果认证成功(用户名和密码正确有效),便会返回一个 User 对象. authenticate()会在该 User 对象上设置一个属性来标

Django用户认证系统(二)Web请求中的认证

在每个Web请求中都提供一个 request.user 属性来表示当前用户.如果当前用户未登录,则该属性为AnonymousUser的一个实例,反之,则是一个User实例. 你可以通过is_authenticated()来区分,例如: if request.user.is_authenticated(): # Do something for authenticated users. else: # Do something for anonymous users. 登陆login login(

Django用户认证系统(一)User对象

User对象 User对象是认证系统的核心.用户对象通常用来代表网站的用户,并支持例如访问控制.注册用户.关联创建者和内容等.在Django认证框架中只有一个用户类,例如超级用户('superusers’)或('staff')用户只不过是相同用户对象设置了不同属性而已. 缺省字段Fields username 用户名,必需字段.30个字符或更少,可以包含 _, @, +, . 和 - 字符. first_name可选. 30 characters or fewer. last_name可选. 3

django 用户认证系统

django认证系统包含三个部分:用户.权限和分组 安装 django项目默认启用了认证系统,如果不是使用django-admin.py创建项目的可以通过在settings配置文件里面的INSTALLED_APPS的列表里面添加django.contrib.auth和django.contrib.contenttypes这两项然后运行manage.py syncdb命令创建对应的数据库表即可 用户Users 在Django-1.4.10\django\contrib\auth这个目录下有一个mo