Django验证模块
-
user 对象:
- username
- password
- first_name
- last_name
-
常用方法:
- create_user(): from django.contrib.auth.models import User user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword') user.save()
- 创建超级用户:$ python manage.py createsuperuser -- username=joe --email=joe@example.com
- 更改密码: from django.contrib.auth.models import User u = User.objects.get(username='john') u.set_password('new password') u.save()
-
authenticate(**credentials) 用于验证用户,一般传进去用户名和密码参数,如果通过验证,则返回一个user obeject对象,否则返回None 代码:
from django.contrib.auth import authenticate user = authenticate(username='john', password='secret') if user is not None: # the password verified for the user if user.is_active: print("User is valid, active and authenticated") else: print("The password is valid, but the account has been disabled!") else: # the authentication system was unable to verify the username and password print("The username and password were incorrect.")
-
is_authenticated()
if request.user.is_authenticated(): # Do something for authenticated users. ... else: # Do something for anonymous users.
6.登陆验证模块
from django.contrib.auth import authenticate, login def my_view(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(username=username, password=password) if user is not None: if user.is_active: login(request, user) # Redirect to a success page. else: # Return a 'disabled account' error message ... else: # Return an 'invalid login' error message. ...
7.logout()
from django.contrib.auth import logout def logout_view(request): logout(request) # Redirect to a success page.
8.装饰器
# login_required 装饰器 不带参数 如果没有登陆,则返回到settings.LOGIN_URL表示的URL from django.contrib.auth.decorators import login_required @login_required def my_view(request): ... # login_required(login_url='')带login_url参数,没有登陆时就会跳到login_url中 from django.contrib.auth.decorators import login_required @login_required(login_url='/accounts/login/') def my_view(request): ...