背景介绍
本系统实现了一个支持用户注册与登录操作的Web页面,通过requests库完成HTTP请求,将用户信息保存至本地文件。系统需支持登录成功后的状态码返回(如200)和错误信息显示,同时需验证用户名和密码的合法性。
思路分析
- 数据存储:使用Python的
with open语句读取并保存本地用户信息,确保文件操作的正确性。 - 请求处理:通过
requests库模拟注册或登录操作,验证输入数据的准确性。 - 状态码与错误信息:根据请求状态返回相应的状态码和错误信息,确保系统响应的完整性。
- 验证逻辑:对输入的用户名和密码进行形式验证,防止非法输入。
代码实现
import requests
import os
def write_to_file(filename, data):
"""写入本地文件"""
with open(filename, 'w') as file:
file.write(json.dumps(data, ensure_ascii=False))
def read_from_file(filename):
"""读取本地文件"""
try:
with open(filename, 'r') as file:
data = json.load(file)
return data
except FileNotFoundError:
return {}
def validate_user_input(username, password):
"""验证输入合法性"""
if not username or not password:
return {"error": "用户名或密码不能为空"}
# 示例:验证密码长度
if len(password) < 6:
return {"error": "密码长度不足"}
return {"success": True}
def send_request(username, password):
"""模拟登录请求"""
url = "http://example.com/login"
data = {
"username": username,
"password": password
}
response = requests.post(url, json=data)
return response
def main():
"""主函数处理用户注册与登录"""
# 保存数据至本地文件
local_file_path = os.path.join(os.path.expanduserpath("~"), "user_data.txt")
success_data = {
"success": False,
"error": None
}
try:
# 保存验证结果
success_data = validate_user_input("admin", "123456")
write_to_file(local_file_path, success_data)
# 发送请求模拟登录
response = send_request("admin", "123456")
if response.status_code == 200:
# 返回成功状态码和错误信息
success_data["success"] = True
success_data["error"] = None
write_to_file(local_file_path, success_data)
else:
# 返回错误信息
write_to_file(local_file_path, {"error": "密码错误"})
except Exception as e:
print(f"请求失败: {str(e)}")
if __name__ == "__main__":
main()
总结
本实现通过Python的requests库完成用户注册与登录功能的模拟,实现了状态码返回和错误信息提示。主要功能包括:
1. 本地数据的存储与读取
2. 用户名与密码的验证逻辑
3. HTTP请求的模拟与状态码返回
4. 常见数据结构(字典)的应用
程序在user_data.txt文件中保存了验证结果,支持用户注册和登录操作,并在成功状态下返回200状态码。程序的完整运行依赖于requests库的正确使用,确保系统的可靠性和可扩展性。