• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Django用户登录与注册系统的实现示例

python 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论

1.1.创建项目和app

django-admin startproject mysite_login
 
python manage.py startapp login

1.2.设置时区和语言

Django默认使用美国时间和英语,在项目的settings文件中,如下所示:

LANGUAGE_CODE = 'en-us' 
TIME_ZONE = 'UTC' 
USE_I18N = True 
USE_L10N = True 
USE_TZ = True

我们把它改为亚洲/上海时间和中文

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

1.3.启动

运行测试一下工程,在本机的浏览器中访问http://127.0.0.1:8000/

 二、设计数据模型

 2.1.数据库模型设计

 作为一个用户登录和注册项目,需要保存的都是各种用户的相关信息。很显然,我们至少需要一张用户表User,在用户表里需要保存下面的信息:

  • 用户名
  • 密码
  • 邮箱地址
  • 性别
  • 创建时间

 进入login/models.py,代码如下

# login/models.py
from django.db import models
 
class User(models.Model):
 '''用户表'''
 
 gender = (
  ('male','男'),
  ('female','女'),
 )
 
 name = models.CharField(max_length=128,unique=True)
 password = models.CharField(max_length=256)
 email = models.EmailField(unique=True)
 sex = models.CharField(max_length=32,choices=gender,default='男')
 c_time = models.DateTimeField(auto_now_add=True)
 
 def __str__(self):
  return self.name
 
 class Meta:
  ordering = ['c_time']
  verbose_name = '用户'
  verbose_name_plural = '用户'

各字段含义来源gaodai#ma#com搞@代~码$网

  • name必填,最长不超过128个字符,并且唯一,也就是不能有相同姓名;
  • password必填,最长不超过256个字符(实际可能不需要这么长);
  • email使用Django内置的邮箱类型,并且唯一;
  • 性别使用了一个choice,只能选择男或者女,默认为男;
  • 使用__str__帮助人性化显示对象信息;
  • 元数据里定义用户按创建时间的反序排列,也就是最近的最先显示;

注意:这里的用户名指的是网络上注册的用户名,不要等同于现实中的真实姓名,所以采用了唯一机制。如果是现实中可以重复的人名,那肯定是不能设置unique的。

 2.2.设置数据库为Mysql

在settings.py修改

DATABASES = {
 'default': {
  'ENGINE': 'django.db.backends.mysql',
  'NAME': 'django',  #数据库名字
  'USER': 'root',   #账号
  'PASSWORD': '123456',  #密码
  'HOST': '127.0.0.1', #IP
  'PORT': '3306',     #端口
 }
}

init.py里面导入pymysql模块

# login/init.py
 
import pymysql
pymysql.install_as_MySQLdb()

2.3.数据库迁移

注册app

INSTALLED_APPS = [
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'login',
]

迁移到数据库

python manage.py makemigrations
python manage.py migrate

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Django用户登录与注册系统的实现示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址