查看“User models设计”的源代码
←
User models设计
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==项目表的设计== ===构想需要的表=== *users *goods *trade *user_operation ===创建相关应用=== [root@localhost mxshop]# python3 manage.py startapp goods [root@localhost mxshop]# python3 manage.py startapp trade [root@localhost mxshop]# python3 manage.py startapp user_operation 移动到apps目录下,方便管理: [root@localhost mxshop]# mv goods apps/ [root@localhost mxshop]# mv trade apps/ [root@localhost mxshop]# mv user_operation apps/ ===注册相关应用=== 在settings.py 中注册相关应用: <nowiki> INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users', 'goods', 'trade', 'user_operation', ] </nowiki> ==User models设计== apps/user/models.py: ===设计UserProfile表=== <nowiki>from datetime import datetime from django.db import models from django.contrib.auth.models import AbstractUser#导入系统用户 # Create your models here. class UserProfile(AbstractUser): """ 用户 """ name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名") birthday = models.DateField(null=True, blank=True, verbose_name="出生年月") gender = models.CharField(max_length=6, choices=(("male", u"男"), ("female", "女")), default="female", verbose_name="性别") mobile = models.CharField(null=True, blank=True, max_length=11, verbose_name="电话") email = models.EmailField(max_length=100, null=True, blank=True, verbose_name="邮箱") class Meta: verbose_name = "用户"#设置表的别名 verbose_name_plural = verbose_name def __str__(self): return self.username</nowiki> ===设计验证码表=== 跟刚才同一文件下. <nowiki>class VerifyCode(models.Model): """ 短信验证码 """ code = models.CharField(max_length=10, verbose_name="验证码") mobile = models.CharField(max_length=11, verbose_name="电话") add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")#这里不能写成datetime.now() class Meta: verbose_name = "短信验证码" verbose_name_plural = verbose_name def __str__(self): return self.code</nowiki> ==替换系统用户== 在settings.py中添加: <nowiki>AUTH_USER_MODEL = 'users.UserProfile' </nowiki> 这样认证的用户模型就变成了我们自己写的,替换掉系统中原来默认的。 ==模板迁移及写入== python3 manage.py makemigrations python3 manage.py sqlmigrate users 0001 python3 manage.py migrate ==验证== 在mysql中输入命令验证: MariaDB [(none)]> show databases; <nowiki>+--------------------+ | Database | +--------------------+ | information_schema | | mxshop | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.01 sec)</nowiki> MariaDB [(none)]> use mxshop; <nowiki>Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed</nowiki> MariaDB [mxshop]> show tables; <nowiki>+------------------------------------+ | Tables_in_mxshop | +------------------------------------+ | auth_group | | auth_group_permissions | | auth_permission | | django_admin_log | | django_content_type | | django_migrations | | django_session | | users_userprofile | | users_userprofile_groups | | users_userprofile_user_permissions | | users_verifycode | +------------------------------------+</nowiki> MariaDB [mxshop]> desc users_userprofile; <nowiki>+--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | password | varchar(128) | NO | | NULL | | | last_login | datetime | YES | | NULL | | | is_superuser | tinyint(1) | NO | | NULL | | | username | varchar(150) | NO | UNI | NULL | | | first_name | varchar(30) | NO | | NULL | | | last_name | varchar(30) | NO | | NULL | | | is_staff | tinyint(1) | NO | | NULL | | | is_active | tinyint(1) | NO | | NULL | | | date_joined | datetime | NO | | NULL | | | name | varchar(30) | YES | | NULL | | | birthday | date | YES | | NULL | | | gender | varchar(6) | NO | | NULL | | | mobile | varchar(11) | YES | | NULL | | | email | varchar(100) | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+ 15 rows in set (0.01 sec)</nowiki> MariaDB [mxshop]> desc users_verifycode; <nowiki>+----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | code | varchar(10) | NO | | NULL | | | mobile | varchar(11) | NO | | NULL | | | add_time | datetime | NO | | NULL | | +----------+-------------+------+-----+---------+----------------+ </nowiki>
返回至
User models设计
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息