赞
踩
注:本文仅制作了函数来实现
需要代码的直接翻到最后(看不见的是代码还在审核)
相信大家非常熟悉这个界面:
这是一个基础的登录界面,当然,对应的还有注册界面:
本文将在服务端的角度解释如何实现这两个功能
想要登录,那就需要先注册。虽然可以肯定的是这两个功能都不是那么简单,但是我会带大家了解如何制作。
在注册时,一定要有一个文件来储存注册信息的文件,这时候就需要json登场了,使用json快速保存与读取数据为各种格式
检测目录下是否有json文件,如果没有则创建
- if not os.path.exists('Main.json'):
- data = {
- "Password": {
- "admin": "123456"
- }
- }
- with open('Main.json', 'w') as file:
- json.dump(data, file)
- print('已在当前目录下创建 Main.json 信息储存文件。')
我接下来带大家一句句分析其作用
首先是
if not os.path.exists('Main.json'):
这是一个通用用法,使用os来检测目录下是否有目标文件,这里的意思是如果目录下没有Main.json文件,则。。。
data = { ... } (内容省略)
这一行比较好理解,创建一个字典,并且在字典中创建一个叫做password的字典用来储存密码与账号
with open('Main.json', 'w') as file: json.dump(data, file)
这行代码理解起来很方便:打开叫做main.json的文件,打开方式是w,打开后这个写入方式为file
接下来使用json.dump写入data这个数据到main.json当中去
注:打开方式w就是写入方式打开,如果你只是阅读,那就是r
首先放上注册模块的完整代码:
- def register(message):
- msg_list = json.loads(message)
- new_username, new_password = msg_list[1], msg_list[2]
- with open("Main.json", "r") as f:
- data = json.load(f)
- if new_username in data["Password"]:
- response = "username_taken"
- else:
- data["Password"][new_username] = new_password
- with open("main.json", "w") as f:
- json.dump(data, f)
- response = "success"
- return response
接下来就是一行行的解释:
第一行:def register 相信有经验的诸位已经看出来了,定义了一个函数,叫做register,接受message参数
这个参数的格式是一个string格式的list(具体原因会在下一篇blog中讲到)
不需要的小伙伴可以直接把
msg_list = json.loads(message)
改为
msg_list = message
然后传入参数变为list格式即可
接下来就是从这个list当中读取要注册的用户名和密码
new_username, new_password = msg_list[1], msg_list[2]
因为第一个参数是告诉我们他是干什么的,所以,这里的msg_list的三个参数读取了后两个
注意:list的索引是从0开始的,所以这里读取1和2,就是读取2和3参数
下面就是上面说过的,用r方式读取文件
- with open("Main.json", "r") as f:
- data = json.load(f)
这里就不多说了,直接下一个,不会的可以返回去看或者去我微信群问我
- if new_username in data["Password"]:
- response = "username_taken"
这是一个判断代码,在data中查找password的内容,判断这个用户名是不是以及注册过了,如果注册过了则直接返回参数
username_taken
如果没有注册过:
- else:
- data["Password"][new_username] = new_password
- with open("main.json", "w") as f:
- json.dump(data, f)
- response = "success"
写入用户名和密码,并且返回success
很好,注册已经结束了,那么接下来就是登录!
登录是最为简单的,但也是最复杂的,大家觉得登录需要考察的是什么代码水平呢(投票看不见可能是还在审核)
一样,先放上完整代码
- def sigh_in(message):
- msg_list = json.loads(message)
- with open("Main.json", "r") as f:
- data = json.load(f).get("Password")
- username, user_password = msg_list[1], msg_list[2]
- for item in data:
- if item == username:
- if data[item] == user_password:
- response = "success"
- else:
- response = "wrong_password"
- break
- else:
- response = "wrong_name"
- return response
登录的代码的相关知识我在前文都已经大致说过了
这里就不多做解释了,唯一比较难的是这个判断以及报错输出,大家可以试着理解一下,不会的可以加群问我
照常,放出微信群二维码,欢迎大家进群问bug或者参与游戏开发:
放出我的github代码地址(完整的socket连接实现登录与注册)
那么今天的blog到此结束啦~~~
下次见~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。