如何让python登录注册程序在不出现其他文件的情况下依然能够存储用户信息?
三个方法。
使用 Python 内置的 shelve 模块,它允许创建一个简单的 key-value 存储,以便在程序运行期间存储用户信息。使用 shelve,将用户信息存储在一个本地文件中。
import shelve
# 创建 shelve 文件
user_data = shelve.open("user_data.db")
# 添加用户数据
user_data["username"] = {"password": "password123"}
# 关闭文件
user_data.close()
import configparser
# 创建配置文件
config = configparser.ConfigParser()
config["USER_DATA"] = {"username": "password123"}
# 将配置写入文件
with open("user_data.ini", "w") as config_file:
config.write(config_file)
import json
# 创建用户数据
user_data = {"username": "password123"}
# 将用户数据写入 JSON 文件
with open("user_data.json", "w") as json_file:
json.dump(user_data, json_file)
小魔女参考了bing和GPT部分内容调写:
可以使用数据库来存储用户信息,比如MySQL,SQLite等。可以使用Python的数据库接口(DB-API)来连接数据库,然后创建表来存储用户信息,比如用户名、密码、邮箱等。
例如,使用MySQL,可以使用Python的MySQLdb模块来连接数据库,然后创建表:
import MySQLdb
# 连接数据库
db = MySQLdb.connect("localhost", "username", "password", "database_name")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# 如果数据表已经存在使用 execute() 方法删除表
cursor.execute("DROP TABLE IF EXISTS users")
# 创建数据表SQL语句
sql = """CREATE TABLE users (
username CHAR(20) NOT NULL,
password CHAR(20) NOT NULL,
email CHAR(50))"""
cursor.execute(sql)
# 关闭数据库连接
db.close()
然后,可以使用SQL语句来插入、更新和查询用户信息,比如:
# 插入用户信息
sql = "INSERT INTO users(username, password, email) VALUES ('%s', '%s', '%s')" % (username, password, email)
# 更新用户信息
sql = "UPDATE users SET password = '%s' WHERE username = '%s'" % (password, username)
# 查询用户信息
sql = "SELECT * FROM users WHERE username = '%s'" % username
回答不易,记得采纳呀。
将用户信息定义成全局变量,在登录时改变保存和更新全局变量的值,然后在要使用的时候import导入使用,比如:
def _init(): # 初始化
global _user_info_dict
_user_info_dict = {}
def set_value(key, value):
# 定义一个全局变量
_user_info_dict[key] = value
def get_value(key):
# 获得一个全局变量,不存在则提示读取对应变量失败
try:
return _user_info_dict[key]
except:
print('读取' + key + '失败\r\n')
import userInfo
# 初始化gol模块,只需要在主程序模块初始一次
userInfo._init()
import userInfo
# 新建或者重置跨文件全局变量:userInfo.set_value(变量名, 变量值)
userInfo.set_value('username', 'username')
import userInfo
# 获得某个全局变量的值: userInfo.get_value(变量名)
username = userInfo.get_value('username')