大一学生求助:无需MySQL/Django的Python登录注册表单开发入门
纯Python实现登录/注册表单(无数据库/框架)
既然你只掌握Python,又不想用MySQL、Django这类工具,那用本地JSON文件存储数据是最适合的方案——完全依赖Python自带模块,不用装任何额外东西,就能实现数据持久化(关闭程序后数据不会丢失)。
下面是分步实现的思路和完整代码:
核心逻辑拆分
- 用
json模块读写本地文件,保存用户信息 - 注册功能:收集姓名、性别、班级,检查姓名是否重复后写入文件
- 登录功能:根据输入的姓名查找用户,找到就展示信息
完整代码实现
import json import os # 加载本地存储的用户数据 def load_users(): # 如果用户文件存在就读取,不存在就返回空列表 if os.path.exists("users.json"): with open("users.json", "r", encoding="utf-8") as f: return json.load(f) return [] # 保存新用户到文件 def save_user(new_user): users = load_users() # 检查姓名是否已被注册 for user in users: if user["姓名"] == new_user["姓名"]: return False # 姓名重复,保存失败 users.append(new_user) # 写入文件,ensure_ascii=False保证中文正常显示 with open("users.json", "w", encoding="utf-8") as f: json.dump(users, f, ensure_ascii=False, indent=4) return True # 注册功能 def register(): print("\n=== 用户注册 ===") name = input("请输入姓名:").strip() gender = input("请输入性别:").strip() cls = input("请输入班级:").strip() # 简单校验,避免空输入 if not name or not gender or not cls: print("姓名、性别、班级不能为空!") return user_info = { "姓名": name, "性别": gender, "班级": cls } if save_user(user_info): print("注册成功!") else: print("该姓名已被注册,请更换姓名重试!") # 登录+展示信息功能 def login(): print("\n=== 用户登录 ===") name = input("请输入姓名:").strip() if not name: print("姓名不能为空!") return users = load_users() # 遍历查找匹配的用户 for user in users: if user["姓名"] == name: print("\n=== 用户信息 ===") print(f"姓名:{user['姓名']}") print(f"性别:{user['性别']}") print(f"班级:{user['班级']}") return print("未找到该用户,请先注册!") # 主菜单交互 def main(): while True: print("\n=== 登录/注册系统 ===") print("1. 注册") print("2. 登录") print("3. 退出") choice = input("请选择操作(1/2/3):").strip() if choice == "1": register() elif choice == "2": login() elif choice == "3": print("退出系统,再见!") break else: print("输入无效,请重新选择!") if __name__ == "__main__": main()
使用说明
- 运行代码后,会自动在当前目录生成
users.json文件,所有用户数据都存在这里 - 注册时会自动检查姓名是否重复,避免同一个姓名多次注册
- 登录只需输入姓名,系统会自动匹配并展示对应的用户信息
- 全程只用Python内置模块,没有依赖任何第三方工具或数据库
内容的提问来源于stack exchange,提问作者kkranezz
相关产品推荐
相关产品推荐

