1 创建⽤户模块⼦应⽤
1.1 在项⽬包⽬录下 创建apps的python包。
1.2 在apps包下 创建应⽤userapp
$ cd 项⽬包⽬录/apps
$ python ../../manage.py startapp userapp
1.3 配置导包路径 默认情况下导包路径指向项⽬根⽬录
# 通过下⾯语句可以打印当前导包路径
print(sys.path)
# 在dev.py⽂件中配置导包路径
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
1.4 注册⼦应⽤
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'userapp',
]
2. 实现展示⽤户注册⻚⾯功能
2.1 在项⽬包⽬录 /templates下 创建基础模板⽂件
2.2 在项⽬包⽬录/templates下 创建userapp⽂件夹
2.3 将 register.html 存放⾄ 项⽬包⽬录/templates/userapp⽬录 下
register: 注册
2.4 创建注册视图
class Register(View):
def get(self,request):
return render(request,'userapp/register.html')
2.5 定义 ⽤户注册路由
# 项⽬根路由
from django.contrib import admin
from django.urls import path, re_path, include
urlpatterns = [
path('admin/', admin.site.urls),
re_path('^', include(('userapp.urls', 'userapp',), namespace='userapp'
)),
]
# ⽤户模块⼦路由
from django.urls import re_path
from . import views
urlpatterns = [
re_path('^register/$', views.Register.as_view(), name='register'),
]
3 Django默认⽤户认证系统
- Django⾃带⽤户认证系统
- 它处理 ⽤户账号、组、权限以及基于cookie的⽤户会话。
- Django认证系统位置
- django.contrib.auth包含 认证框架的核⼼和默认的模型。
- django.contrib.contenttypes是 Django内容类型系统,它允许权限与你创建的模型关联。
- Django认证系统同时处理 认证和授权
- 认证:验证⼀个⽤户是否它声称的那个⼈,可⽤于账号登录。
- 授权:授权决定⼀个通过了认证的⽤户被允许做什么。
- Django认证系统包含的内容
- ⽤户:⽤户模型类、⽤户认证。
- 权限:标识⼀个⽤户是否可以做⼀个特定的任务,MIS系统常⽤到。
- 组:对多个具有相同权限的⽤户进⾏统⼀管理,MIS系统常⽤到。
- 密码:⼀个可配置的密码哈希系统,设置密码、密码校验。
3.1 Django默认⽤户模型类
- Django认证系统中提供了⽤户模型类,User保存⽤户的数据。
- User对象是认证系统的核⼼。
- Django认证系统⽤户模型类位置
- django.contrib.auth.models.User
class User(AbstractUser):
"""
Users within the Django authentication system are represented
by this
model.
Username and password are required. Other fields are optional.
"""
class Meta(AbstractUser.Meta):
swappable = 'AUTH_USER_MODEL'