Django 拓展auth 用户 part_2

Django拓展auth 用户

完成注册登录登出注销操作

!!!拓展auth用户请务必在 python manage.py migrate 前进行!!!

  1. 新建一个project:closetUsers

  2. 修改 settings.py

    #closetUsers/settings.py
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'users',  # modify 
        'rest_framework', # modify 
        'django_filters', # modify 
    ]
    #update database config 
    DATABASES = {
         
        'default': {
         
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'test',    #数据库名
            'USER': 'test', #用户名
            'PASSWORD': 'test123', #用户密码
            'HOST': 'localhost',  #服务器IP地址
            'PORT': '3306',
        }
    }
    #add auth_user_model !after! add the extended user
    AUTH_USER_MODEL = 'users.User'   #pattern: <appName>.<className>
    
    
  3. 新建一个app:users

  4. 修改 users/__init__.py

    #users/__init__.py
    import pymysql
    pymysql.install_as_MySQLdb()
    #use for django2.x version to link mysql database
    
  5. users底下添加文件 urls.py ,修改 closetUsers.urls.py

    #closetUsers/urls.py
    from django.contrib import admin
    from django.urls import path
    from django.conf.urls import include  #add this
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('', include('users.urls')), 
        #add this, pattern: <appName>.urls
    ]
    
  6. 修改 users.models.py, 添加拓展的用户类,继承自 AbstractUser, 注:如原来的auth.User 已有的属性不需要再添加

    #users/models.py
    from django.db import models
    from django.contrib.auth.models import AbstractUser
    
    
    # Create your models here.
    class User(AbstractUser):
        """
        save the user info
        """
        style = models.CharField(max_length=30, default='casual', null=True, blank=True)
        profile = models.URLField(blank=True)
        phone = models.CharField(max_length=11,  null=True, blank=True)
    
        def __str__(self):
            return self.username
    
    
  7. 建表

    xxxdeMacBook-Pro:closetUsers xxx$ python3 manage.py migrate
    xxxdeMacBook-Pro:closetUsers xxx$ python3 manage.py makemigrations users
    xxxdeMacBook-Pro:closetUsers xxx$ python3 manage.py migrate users
    
  8. 重写UserCreationForm, UserChangeForm, 在users 底下新建 form.py文件,其实我只是想要提供一个restful的API而不是建立一个网站,因而应该不需要使用到表单创建,但Django文档中说明拓展User需要重写这两个表单因此还是重写了。

    #users/forms.py
    from django.contrib.auth.forms import UserCreationForm, UserChangeForm
    from django import forms
    from .models import User
    
    
    class RegisterForm(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值