Python Socket 编程:实现用户认证与数据库查询
Python Socket 编程:实现用户认证与数据库查询
本示例使用 Python Socket 编程实现简单的用户认证功能。服务器端连接 MySQL 数据库,验证客户端输入的用户名和密码是否匹配数据库记录。
客户端代码:
import socket
HOST = 'localhost'
PORT = 8000
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))
while True:
data = input('请输入用户名和密码,用空格分隔:')
s.sendall(data.encode())
response = s.recv(1024).decode()
print(response)
服务器端代码:
import socket
import mysql.connector
HOST = 'localhost'
PORT = 8000
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test"
)
cursor = db.cursor()
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.bind((HOST, PORT))
s.listen()
print('服务器已启动...')
while True:
conn, addr = s.accept()
with conn:
print('客户端已连接:', addr)
while True:
data = conn.recv(1024).decode()
if not data:
break
username, password = data.split()
sql = "SELECT * FROM users WHERE username = %s AND password = %s"
val = (username, password)
cursor.execute(sql, val)
result = cursor.fetchone()
if result:
conn.sendall('认证成功'.encode())
else:
conn.sendall('认证失败'.encode())
说明:
- 服务器端连接 MySQL 数据库,并执行查询语句验证用户名和密码。
- 客户端输入用户名和密码,并发送到服务器端进行验证。
- 服务器端返回验证结果给客户端。
数据库:
维护一个小型数据库可以采用 MySQL 数据库,仅包含两个字段:用户名,密码;保存已经认证的用户名和密码值对。
使用:
- 运行服务器端代码,启动监听端口。
- 运行客户端代码,输入用户名和密码。
- 服务器端验证用户名和密码,并返回结果给客户端。
原文地址: https://www.cveoy.top/t/topic/kfR4 著作权归作者所有。请勿转载和采集!