Django用户认证auth模块的扩展

2024-11-03 01:01:38

1、在命令行创建Django工程,并在工程内创建应用,命令如下:django-admin startproject djauthspcd djauthsppython manage.py startapp myUser

Django用户认证auth模块的扩展

2、使用PyCharm打开工程,在工程的根目录的djauthsp的settings.py文件添加应用,添加模板目录,添加AUTH_USER_MODEL扩展模块,修改部分的settings.py内容如下:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myUser.apps.MyuserConfig',]TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join('templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },]AUTH_USER_MODEL = 'myUser.UserDiy'

Django用户认证auth模块的扩展

3、在应用的models.py文件,新建一个UserDiy类继承自auth.modles的AbstractUser类,目的就是扩展已有的用户表的字段,代码如下:from django.db import modelsfrom django.contrib.auth.models import AbstractUser# Create your models here.class UserDiy(AbstractUser): phone = models.CharField(max_length=11) wechat = models.CharField(max_length=50)

Django用户认证auth模块的扩展

4、在工程根目录新建templates文件夹,并在此文件夹下新建‘register.html’文件,并写代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>register</title></head><body> <form action="/register/" method="post"> {% csrf_token %} <p>用户名 <input type="text" name="username"> </p> <p>手机 <input type="text" name="phone"> </p> <p>微信 <input type="text" name="wechat"> </p> <p> 密码 <input type="password" name="password"> </p> <p> <input type="submit"> </p> </form></body></html>

Django用户认证auth模块的扩展

5、在工程根目录的djauthsp文件的urls.py文件,include到应用的路由,urls.py文件内容如下:from django.conf.urls import url,includefrom django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls), url(r'',include('myUser.urls')),]

Django用户认证auth模块的扩展

6、在应用文件夹新建‘urls.py’文件,编写内容如下:from django.conf.urls import urlfrom . import viewsurlpatterns = [ url(r'register',views.reg),]

Django用户认证auth模块的扩展

7、在应用的‘views.py’视图文件,编写注册用的视图函数,代码如下:from django.shortcuts import render,HttpResponsefrom .models import UserDiy# Create your views here.def reg(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') phone = request.POST.get('phone') wechat = request.POST.get('wechat') user = UserDiy.objects.create_user(username=username,password=password,phone = phone,wechat=wechat) user.save() return HttpResponse('ok') return render(request,'register.html')代码比较简单,就是把提交过来的信息,保存到数据库的用户表

Django用户认证auth模块的扩展

8、运行服务器python manage.py runserver在网页测试提交一条包括扩展字段的注册数据,在数据库中就可以看到啦

Django用户认证auth模块的扩展Django用户认证auth模块的扩展
猜你喜欢