栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python29

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python29

基于Django可重用注册登陆的系统

第一步:搭建项目环境

1. 创建新的Django项目2. 创建App项目3. 修改时区,时间,语言4. 创建数据库表5. 创建管理员用户6. 浏览器测试,是否成功7. 将代码上传到Git版本库中 第二步:设计数据库模型

1. 创建数据库模型文件2. 注册App(激活App项目)3. 生成迁移脚本,写入数据库表4. 使用Python Shell测试

4.1 导入数据库4.2 设置数据库后端(略)4.3 创建用户、密码、邮箱等等4.4 数据库模型的基本操作4.5 创建的用户必须唯一4.6 数据库模型的后台管理

第一步:搭建项目环境 1. 创建新的Django项目

2. 创建App项目
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python manage.py startapp login

3. 修改时区,时间,语言

在loginRegister/settings.py中修改

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = True
# 若项目需要应用到美国,东南亚等地区,需要修改时区,提高国际通用性。

4. 创建数据库表
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py makemigrations
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py migrate

5. 创建管理员用户
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py createsuperuser
用户名 (leave blank to use 'lenovo'): admin
电子邮件地址: admin@qq.com
Password: 
Password (again): 
密码跟 用户名 太相似了。
密码长度太短。密码必须包含至少 8 个字符。
这个密码太常见了。
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
6. 浏览器测试,是否成功

启动开发服务器的两种方法

第一种登陆方式:python shell命令运行

PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py runserver 9999 

第二种登陆方式:快速登陆
7. 将代码上传到Git版本库中

    安装Git Windows10安装Git

    Git提交项目代码到本地仓库

查看Git的版本

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git --version
git version 2.34.1.windows.1

Git初始化

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git init
Initialized empty Git repository in E:/pythonProject1/2021-11-28-python_study/day08/loginRegister/.git

安装插件 .ignore,并生成python上传Git项目需要忽略内容的文件 .gitignore


添加工作区的修改文件到暂存区

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git add *
warning: LF will be replaced by CRLF in .idea/inspectionProfiles/profiles_settings.xml.
The file will have its original line endings in your working directory

先注册用户名和邮箱

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git commit -m 'loginRegister'
Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'LENOVO@LAPTOP-0VVRF0MM.(none)')

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git config --global user.email "1819
613927@qq.com"
PS E:pythonProject12021-11-28-python_studyday08loginRegister> git config --global user.name "Outlo
ok"

将暂存区的代码提交到本地Git仓库

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git commit -m 'loginRegister'       
[master (root-commit) aeff891] loginRegister                      
 23 files changed, 515 insertions(+)                              
 create mode 100644 .gitignore                                    
 create mode 100644 .idea/.gitignore                              
 create mode 100644 .idea/dataSources.xml                         
 create mode 100644 .idea/inspectionProfiles/profiles_settings.xml
 create mode 100644 .idea/loginRegister.iml                       
 create mode 100644 .idea/misc.xml                                
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/vcs.xml
 create mode 100644 db.sqlite
 create mode 100644 login/__init__.py
 create mode 100644 login/admin.py
 create mode 100644 login/apps.py
 create mode 100644 login/migrations/0001_initial.py
 create mode 100644 login/migrations/__init__.py
 create mode 100644 login/models.py
 create mode 100644 login/tests.py
 create mode 100644 login/views.py
 create mode 100644 loginRegister/__init__.py
 create mode 100644 loginRegister/asgi.py
 create mode 100644 loginRegister/settings.py
 create mode 100644 loginRegister/urls.py
 create mode 100644 loginRegister/wsgi.py
 create mode 100644 manage.py

查看历史记录

PS E:pythonProject12021-11-28-python_studyday08loginRegister> git log
commit aeff891c376d21e9dc5be4eaa0a6168c779441f4 (HEAD -> master)
Author: Outlook <1819613927@qq.com>
Date:   Fri Jan 21 13:20:34 2022 +0800

    loginRegister

第二步:设计数据库模型 1. 创建数据库模型文件

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

在login/models.py文件中修改

用户名(name):必填,最长不超过128个字符且唯—(unique)密码(password):必填,最长不超过256个字符邮箱地址(email):使用Django内置的邮箱类型且唯一性别(gender):性别,使用choice,只能选择男或者女,默认为男;创建时间(create_time):用户创建时间

注意点:tauto_now_add=True时为添加时的时间,更新对象时不会有变动。 修改时间(modify_time):用户最后一次修改时间

注意点:auto_now=True无论是你添加还是修改对象,时间为你添加或者修改的时间。 最后一次登录时间(last_login_time):最后一次登录时间

注意点:null=True的话,数据库中该字段是NULL,即允许空值。注意点:blank=False (默认)的话,字段没被赋值则会抛错;和数据验证(表单验证等)有关。

from django.db import models

# Create your models here.

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='性别')
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建的时间')
    # auto_now_add=True时,为添加时的时间,更新对象时,不会有变化
    # auto_now=True,无论是添加或者修改对象,时间都会添加或者修改的时间
    modify_time = models.DateTimeField(auto_now=True, verbose_name='最后一次修改的时间')
    last_login_time = models.DateTimeField(null=True, blank=True, verbose_name='最后一次登陆的时间')
    # null针对数据库层面,blank针对表单

    def __str__(self):
        return self.name

    class meta:
        verbose_name = '网站用户管理'
        verbose_name_plural = verbose_name
2. 注册App(激活App项目)

在loginRegister/settings.py中修改

3. 生成迁移脚本,写入数据库表
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py makemigrations  
Migrations for 'login':
  loginmigrations001_initial.py
    - Create model SiteUser
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, login, sessions
Running migrations:
  Applying login.0001_initial... OK

4. 使用Python Shell测试 4.1 导入数据库
PS E:pythonProject12021-11-28-python_studyday08loginRegister> python .manage.py shell
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.                        
(InteractiveConsole)                                                                           
>>> from login.models import SiteUser
4.2 设置数据库后端(略)

Django官方文档

4.3 创建用户、密码、邮箱等等
>>> from login.models import SiteUser
>>> user1 = SiteUser(name = 'user1', password = 'user1', email = 'user1@qq.com')
>>> user1.save()
>>> SiteUser.objects.all()
]>
4.4 数据库模型的基本操作
    查看用户的创建时间、最后一次修改时间、最后一次登陆时间
>>> user1.create_time                  
datetime.datetime(2022, 1, 12, 14, 9, 54, 336189, tzinfo=)
>>> user1.modify_time                                          
datetime.datetime(2022, 1, 12, 14, 9, 54, 336189, tzinfo=)
>>> user1.last_login_time 
>>>
    修改用户的密码,并查看用户的创建时间、最后一次修改时间
>>> user1.password = 'newuser1'
>>> user1.save()
>>> user1.password
'newuser1'
>>> user1.create_time
datetime.datetime(2022, 1, 12, 14, 9, 54, 336189, tzinfo=)
>>> user1.modify_time
datetime.datetime(2022, 1, 12, 14, 11, 33, 819047, tzinfo=)
    查看用户的性别
>>> user1.gender
0
    修改用户的性别
>>> user1.gender = 2 
>>> user1.save()
>>> user1.gender
2
4.5 创建的用户必须唯一

4.6 数据库模型的后台管理

在login/admin.py中修改

from django.contrib import admin

# Register your models here.

from login.models import SiteUser

admin.site.register(SiteUser)


在login/admin.py中修改

from django.contrib import admin

# Register your models here.

from login.models import SiteUser

class SiteUserAdmin(admin.ModelAdmin):
    list_display = ['name', 'gender', 'email']
    list_display_links = ['name']
    list_filter = ['gender', 'create_time']

admin.site.register(SiteUser, SiteUserAdmin)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/715449.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号