urlpattern = [ #路由规则
path('/register/', views.register), #注册时指定的视图函数
path('/login/', views.login),
path('/logout/', views.logout),
]
class User:
id, name, password, email, create_time, update_time
last_time(最后一次登录的时间), gender, province
创建app
在terminal中:
python manage.py startapp login
设置时区和语言
# filename: loginRegister/settings.py
# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
$ python manage.py migrate # 将迁移脚本的内容写入数据库并创建数据库表
$ python manage.py createsuperuser # 创建后台登录的超级用户
此步骤用于上传文件至仓库时自动忽略一部分文件,可以自定义要忽略上传的文件。
首先需要安装好git,并且注册git名称及邮箱
git init
git add *
git commit -m "创建项目环境"
git log
作为一个用户登录和注册项目,需要保存的都是各种用户的相关信息。很显然,我们至少需要一张用户表User,在用户表里需要保存下面的信息:
Django支持MySQL, Sqlite, oracle等数据库, 此处选择默认的sqlite,不做修改.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
# login/models.py
from django.db import models
# Create your models here.
# appname_siteuser
class SiteUser(models.Model):
"""用户的数据库模型,注册/登录需要"""
gender_choice = (
(0, "未知"),
(1, "男"),
(2, "女"),
)
name = models.CharField(max_length=128, unique=True, verbose_name="用户名")
password = models.CharField(max_length=256, verbose_name="密码")
email = models.EmailField(unique=True, verbose_name="电子邮箱")
gender = models.IntegerField(choices=gender_choice, default=0, verbose_name="性别")
# auto_now_add=True时为添加时的时间,更新对象时不会有变动。
# auto_now=True无论是你添加还是修改对象,时间为你添加或者修改的时间。
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时 间")
modify_time = models.DateTimeField(auto_now=True, verbose_name="最后一次修改时 间")
# null针对数据库层面的, blank针对表单的
last_login_time = models.DateTimeField(null=True, blank=True, verbose_name="最后一次登录时间")
def __str__(self):
return self.name
class Meta:
verbose_name = "网站用户管理"
verbose_name_plural = verbose_name
在主配置文件中注册login应用:
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login', #修改的内容
]
生成login的迁移脚本:python manage.py makemigrations
打开数据库文件db.sqlite3, 查看是否有数据库表login_siteuser,如果有,则操作成功
测试添加用户:
安装一个补齐软件:pip install ipython
进入交互式环境中:python manage.py shell
添加user1:
In [4]: user1 = SiteUser(name="user1",password="user1",email="[email protected]")
In [5]: user1.save()
In [6]: SiteUser.objects.all()
Out[6]: ]>
In [7]: user1.create_time
Out[7]: datetime.datetime(2021, 3, 13, 8, 32, 46, 279682, tzinfo=)
In [8]: user1.modify_time
Out[8]: datetime.datetime(2021, 3, 13, 8, 32, 46, 279682, tzinfo=)
In [9]: user1.last_login_time
In [10]: user1.gender
Out[10]: 0
In [11]: user1.password = "newuser1"
In [12]: user1.save()
In [13]: user1.create_time
Out[13]: datetime.datetime(2021, 3, 13, 8, 32, 46, 279682, tzinfo=)
In [14]: user1.modify_time
Out[14]: datetime.datetime(2021, 3, 13, 8, 34, 56, 137072, tzinfo=)
In [15]: user1.gender = 2
In [16]: user1.save()
添加user2,邮箱仍选为user1邮箱:
user2 = SiteUser(name="user1",password="user2",email="[email protected]")
保存时报错:
# login/admin.py
from django.contrib import admin
from login.models import SiteUser
# Register your models here.
# 后台管理设置的信息
class SiteUserAdmin(admin.ModelAdmin):
list_display = ['name', 'gender', 'email']
list_display_links = ['name']
list_filter = ['gender', 'create_time']
list_per_page = 10
admin.site.register(SiteUser, SiteUserAdmin)
查看网页结果:
最后将结果写入配置环境中:
git add *
git commit -m "add SiteUser admin management"
git log