注意:使用版本是python3
创建用户相关app
文件目录如下:
参考:django利用pycharm更加方面创建app
Models.py相关信息
用户相关的数据表创建,修改users/models.py文件
# -*- coding:utf-8 -*- from __future__ import unicode_literals from django.db import models # AbstractUser 是django自带的用户表 from django.contrib.auth.models import AbstractUser from datetime import datetime class UserProfile(AbstractUser): # password = models.CharField(max_length=128, verbose_name='密码', default='', blank=False) # # 密码字段,长度128,默认值为空字符,前端不允许用户输入空 # last_login = models.DateTimeField(verbose_name='登录日期', null=True) # # null=True 允许为空 # is_superuser = models.BooleanField(max_length=1, verbose_name='用户身份', name=False) # username = models.CharField(max_length=150, verbose_name='用户名', null=False, blank=False) # first_name = models.CharField(max_length=30, verbose_name='拓展1', null=False) # last_name = models.CharField(max_length=30, verbose_name='拓展2', null=False) # email = models.EmailField(max_length=254, verbose_name='邮箱', blank=False) # is_staff = models.BooleanField(max_length=1, verbose_name='是否是员工', null=False) # is_active = models.BooleanField(max_length=1, verbose_name='是否激活', null=False) # date_joined = models.DateTimeField(verbose_name='注册日期', null=True) nick_name = models.CharField(max_length=50, verbose_name='昵称', default='') birday = models.DateField(verbose_name='生日', null=True) gender = models.CharField(max_length=5, verbose_name='性别', choices=(("male", "男"), ("female", "女")), default='male') # choices=(("male", "女")) 表示gener该字段只能输入male和female # default='male' 默认为male address = models.CharField(max_length=100, verbose_name='地区', default='') mobile = models.CharField(max_length=11, verbose_name='手机', null=True, blank=True) image = models.ImageField(upload_to='image/%Y/%m', verbose_name='头像', default='image/default.png', max_length=100) # upload_to='image/%Y/%m' class Meta: verbose_name = '用户信息表' verbose_name_plural = verbose_name def __str__(self): return self.username class EmailVerifyRecord(models.Model): code = models.CharField(max_length=20, verbose_name='验证码') email = models.EmailField(max_length=50, verbose_name='邮箱') send_type = models.CharField(max_length=10, choices=(('register', '注册'), ('forget', '找回密码')), verbose_name='邮箱验证类型') send_time = models.DateTimeField(verbose_name='生成时间', default=datetime.now) class Meta: verbose_name = '用户邮箱验证码表' verbose_name_plural = verbose_name class Banner(models.Model): title = models.CharField(max_length=100, verbose_name='轮播图标题') image = models.ImageField(upload_to='banner/%Y/%m', verbose_name='轮播图片', max_length=100) # 图片路径banner/%Y/%m /年/月 url = models.URLField(max_length=200, verbose_name='轮播图访问地址') index = models.ImageField(default=100, verbose_name='轮播图顺序') add_time = models.DateTimeField(default=datetime.now, verbose_name='轮播图添加时间') class Meta: verbose_name = '网站轮播图表' verbose_name_plural = verbose_name
MxOnline\settings.py信息添加
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users' # 新添加app名字 ]
# 设置覆盖默认的User模型,其值引用一个自定义的模型
AUTH_USER_MODEL = 'users.UserProfile'
执行命令生成表:
参考:django利用pycharm更加方面使用django命令
makemigrations migrate