注册功能实现 | 学习笔记

简介: 快速学习 注册功能实现

开发者学堂课程【Python入门 2020年版注册功能实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10433


注册功能实现


内容介绍:

一.注册

二.定义字典

三.面向对象的使用

四.对密码进行加密

五.双重加密


一、注册的编码

def register():
while True:
teacher_name =input('
请输入账号(3~6):')

if  not 3<=len(teacher_name)<=6:
print('
账号不符合要求, 请重新输入!')

else:
break
while True:
password = input('
请输入密码(6~12):')

if not 6<=1en(password)<=12:
print('
密码不符合要求,请重新输入!')

else:
break

运行结果:

**欢迎来到学生管理系统**
1.登录
2.注册
3.退出
请选择(1-3):2

请输入账号(3~6): ho

账号不符合要求,请重新输入!

请输入密码(6~12):helsodl

账号不符合要求,请重新输入!

请输入账号(3~6):hello

请输入密码(6~12):fergethiweoregisfkoerisf

密码不符合要求,请重新输入!
请输入密码(6~12):34hreoeqrpwig
密码不符合要求,请重新输入!
请输入密码(6~12):iqretfiojewfa
密码不符合要求,请重新输入!
请输入密码(6~12):123456

**欢迎来到学生管理系统**1.登录
2.注册
3.退出


.定义字典

1#用户名密码都已经输入正确以后{'zhangsan':'123456'}

teacher.={}..#定义一个空的字典,将老师添加到字典里

teacher[teacher_name] = password
print(teacher)

注:

注册一次就定义一次,所以只保留最后一次注册,存在覆盖现象,所以要将“teacher.={}..#定义一个空的字典,将老师添加到字典里”放在代码的最前端,保证每次注册都放在同一个字典里面。

(2)     将信息保存在文件夹里,编写以下程序

def write_ json(file_name,data):
with open(base__dir+file_name,'w',encoding='utf8')as file:import json
json.dump(data,file)}

注:在真正开发时不用文件输入数据而是数据库输入。


.面向对象的使用

注:不要使用追加,会使代码错误,不是一个字典

import sys
import file_ manager
teacher{}
# 定义一个空的字典,将老师添加到字典里

def register():
while True:
teacher_name = input('
请输入账号(3~6):')

if not 3<=len(teacher_name)<=6:
print('
账号不符合要求,请重新输入!')

else:
break
while True:
password = input('
请输入密码(6~12):')

if not 6 <= len(password) <= 12:
print('
密码不符合要求, 请重新输入!')

else:
break

#
用户名密码都已经输入正确以后{'zhangsan':'123456'}

teacher[teacher_ name] = password

file_ manager.write_json("teacher.json.teacher)
print (teacher)

运行结果**欢迎来到学生管理系统**

1.登录
2.注册
3.退出
请选择(1-3):2

请输入账号(3~6):zhang

请输入密码(6~12):132453435

请选择(1-3):2

请输入账号(3~6):lisi

请输入密码(6~12):1324rw4353
{'zhang':'132453435'
'lisi':'1324rw4353'}


.对密码进行加密

import hashlib

def encrypt_password(passwd)

h=hashlib.sha256()
h.update(passwd.encode(
utf8))
return h.hexdigest()
Python3.7.6(tags/v3.7.6:43364a7ae0,Dec19 2019,00:42:30)[MSCv.1916In[2]:import hashlib
In[3]:h1=hashlib.md5()
In[4]:h1.update('hello'.encode('utf8'))


.双重加密

import hashlib
def encrypt_password(passwd,x)

h=hashlib.sha256()
h.update(passwd.encode('utf8')
h.update(x.encode('utf8'))
return h.hexdigest()
Python3.7.6(tags/v3.7.6:43364a7ae0,Dec19 2019,00:42:30)[MSCv.1916In[2]:import hashlib
In[3]:h1=hashlib.md5()
In[4]:h1.update('hello'.encode('utf8'))

In[5]:h1.update('world'.encode('utf8'))
In[6]:h1.hexdigest()
0ut[6]:'fc5e038d38a57032085441e7fe7010b0'
In[7]:h2=Ihashlib.md5()
In[8]:h2.update('helloworld'.encode('utf8'))In[9]

In[9]:h2.hexdigest()
0ut[9]:'fc5e038d38a57032085441e7fe7010b0"

注:

1x 可以取任意值

(2)data 值不能为空

#读取文件,查看文件里是否有数据。如果文件不存在,默认是一个字典

data= file_manager.read_json('data.json')

(3)读取文件

def read_json(file_name):
try:
with open(base__dir + file_name,'r',encoding='utf8')asfile:

import json
return json.load(file)
except FileNotFoundError:
print('
文件未找到')

注:

当文件未找到时则 data 为空,将确定一个默认值,读取不到就返回默认值 default_data,空的文件读取会出错,要满足 json 的格式才行。

相关文章
|
人工智能 Cloud Native 大数据
现代后端技术发展趋势与应用前景
随着信息技术的快速发展,现代后端技术在不断演进和创新。本文将探讨现代后端技术的发展趋势和应用前景,并深入分析其中的关键技术和未来发展方向。从云原生、大数据、微服务架构到人工智能等多个方面展开讨论,展示了后端技术在不断推动数字化转型和业务创新中的重要作用。
|
安全 数据库 存储
数据库设计基石:一文搞懂 1NF、2NF、3NF 三大范式
数据库设计常遇数据冗余、增删改异常?根源往往是表结构不规范。本文带你轻松掌握数据库三大范式——1NF、2NF、3NF,从原子列到消除依赖,层层递进,提升数据一致性与可维护性,让数据库设计更高效、安全!#数据库 #范式设计
863 0
|
23天前
|
弹性计算 应用服务中间件
阿里云2核2G服务器配置什么价格?可选ECS实例规格族及优惠价格参考
阿里云2核2G服务器限时优惠,轻量应用服务器新用户专享38元/年,ECS云服务器99元/年。配置实用,性价比高,新老用户均可参与。活动入口:https://t.aliyun.com/U/emyGuZ 推荐直接选购特惠机型,自选配置价格较高。
88 2
|
2月前
|
人工智能 自然语言处理 算法
数字人|数字人企业新榜单与选择指南
数字人企业正以技术重塑人机交互,像衍科技、灵动视界、幻界智能三者分别以全栈技术、场景落地与AIGC生态引领行业。从虚拟主播到数字文博,数字人已渗透金融、医疗、文化等领域,推动虚拟与现实深度融合,开启一场技术与人性的深度对话。
|
8月前
|
Web App开发 前端开发 JavaScript
如何模拟浏览器行为获取网页中的隐藏表单数据?
如何模拟浏览器行为获取网页中的隐藏表单数据?
|
数据采集 IDE 测试技术
Python实现自动化办公:从基础到实践###
【10月更文挑战第21天】 本文将探讨如何利用Python编程语言实现自动化办公,从基础概念到实际操作,涵盖常用库、脚本编写技巧及实战案例。通过本文,读者将掌握使用Python提升工作效率的方法,减少重复性劳动,提高工作质量。 ###
384 1
Java代码解释++i和i++的五个主要区别
本文介绍了前缀递增(++i)和后缀递增(i++)的区别。两者在独立语句中无差异,但在赋值表达式中,i++ 返回原值,++i 返回新值;在复杂表达式中计算顺序不同;在循环中虽结果相同但使用方式有别。最后通过 `Counter` 类模拟了两者的内部实现原理。
Java代码解释++i和i++的五个主要区别
Python函数:函数的定义和调用
本文详细介绍了Python函数的定义和调用方法,包括基本函数定义、参数传递、返回值、文档字符串、作用域、嵌套函数和闭包。通过一个综合详细的学生成绩管理系统的例子,我们展示了如何在实际编程中应用这些函数概念。希望本文对您理解和应用Python函数有所帮助。
|
算法 安全 虚拟化
|
机器学习/深度学习 算法 数据可视化
探索Python中的聚类算法:层次聚类
探索Python中的聚类算法:层次聚类
337 0