- django用户认证
- 1.创建管理员用户superuser
- 2.注册新用户
- (1)用django后台创建
- 3.和前端交互创建
- (1)前端模板
- (2)视图
- (3)路由
- (4)效果
python manage.py createsuperuser
创建的用户可以在sqlite表里看到:
base.html套用了bootstrap的样式
{% load static %}
{% block title %}base{% endblock %}
{% block css %}{% endblock %}
{% block content %}{% endblock %}
login.html
{% extends 'base.html' %}
{% load static %}
{% block title %}登录{% endblock %}
{% block css %}
{% endblock %}
{% block content %}
{% endblock %}
register.html
{% extends 'base.html' %}
{% load static %}
{% block title %}登录{% endblock %}
{% block css %}
{% endblock %}
{% block content %}
{% endblock %}
index.html
{#login/templates/index.html#}
{% extends 'base.html' %}
{% block title %}主页{% endblock %}
{% block content %}
欢迎回家!{{ name }}
{% endblock %}
(2)视图
from django.http import HttpResponse
from django.shortcuts import render, redirect
# Create your views here.
from django.contrib import auth
def login(request):
if request.method == "POST":
username = request.POST.get('username')
password = request.POST.get('password')
# 验证用户名和密码
user_obj = auth.authenticate(username=username, password=password)
# print(user_obj.username)
if not user_obj:
return redirect("https://blog.csdn.net/login/login/")
else:
auth.login(request, user_obj)
return render(request, 'index.html',{'name':username})
return render(request, 'login.html')
from django.contrib.auth.models import User
def register(request):
if request.method == "POST":
uname=request.POST.get('username')
psd = request.POST.get('password')
User.objects.create_user(username=uname, password=psd) # 调用create_user,数据库的密码是密文;调用create_superuser,可以指定email
return HttpResponse("用户创建成功")
return render(request,'register.html')
def index(request):
return render(request,'index.html')
- auth.authenticate应该只能验证通过密码的密文一致的用户,也就是说要用create_user创建新用户
子路由
from django.urls import path
from . import views
urlpatterns = [
path('login/', views.login),
path('index/', views.index),
path('register/', views.register),
]
(4)效果



