请帮我看一下为什么我的代码前后连不上,如果可以的话,麻烦详细说下问题所在,感谢
# 前端的GUI界面的代码
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit, QPushButton, QTextBrowser, QMessageBox
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
from PyQt5.QtCore import QUrl, QByteArray
import json
class MyApp(QWidget):
def __init__(self):
super().__init__()
# 初始化界面
self.init_ui()
def init_ui(self):
self.setWindowTitle('数据添加和查询示例')
self.resize(400, 300)
# 布局
layout = QVBoxLayout()
# 添加数据部分
self.name_label_add = QLabel('姓名:')
self.name_input_add = QLineEdit()
self.add_button = QPushButton('添加数据')
self.add_button.clicked.connect(self.add_data)
layout.addWidget(self.name_label_add)
layout.addWidget(self.name_input_add)
layout.addWidget(self.add_button)
# 查询数据部分
self.query_button = QPushButton('查询数据')
self.query_button.clicked.connect(self.query_data)
self.result_label = QLabel('查询结果:')
self.result_browser = QTextBrowser()
layout.addWidget(self.query_button)
layout.addWidget(self.result_label)
layout.addWidget(self.result_browser)
self.setLayout(layout)
def add_data(self):
name = self.name_input_add.text()
if name:
success = self.send_request('/api/add_data', {'name': name}, 'Data added successfully')
if success:
QMessageBox.information(self, 'Success', 'Data added successfully')
self.name_input_add.clear()
else:
QMessageBox.warning(self, 'Error', 'Name is required')
def query_data(self):
success, data = self.send_request('/api/query_data', None, 'Data queried successfully')
if success:
QMessageBox.information(self, 'Success', 'Data queried successfully')
self.result_browser.setPlainText(data)
def send_request(self, endpoint, data, success_message):
url = QUrl('http://localhost:5000' + endpoint)
request = QNetworkRequest(url)
if data:
data = QByteArray(json.dumps(data).encode())
request.setHeader(QNetworkRequest.ContentTypeHeader, 'application/json')
request.setHeader(QNetworkRequest.ContentLengthHeader, len(data))
manager = QNetworkAccessManager()
reply = manager.post(request, data) if data else manager.get(request)
reply.finished.connect(self.handle_response)
return reply.error() == QNetworkReply.NoError, reply.readAll().data().decode()
def handle_response(self):
reply = self.sender() # 获取信号的发送者
if reply.error() == QNetworkReply.NoError:
data = reply.readAll().data().decode()
self.show_message('Data queried successfully\n' + data)
else:
self.show_message('Error: ' + reply.errorString())
def show_message(self, message):
self.result_browser.setPlainText(message)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
# 检查服务器连接测试: Test-NetConnection -ComputerName 127.0.0.1 -Port 5000
# 网络连通性测试: ping 127.0.0.1
``````python
# 后端flask文件的代码
from flask import Flask, request, jsonify
import pymysql
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
# MySQL连接配置
db_config = {
'host': 'localhost',
'user': 'root',
'password': '123456',
'database': 'mine',
'cursorclass': pymysql.cursors.DictCursor
}
def get_connection():
return pymysql.connect(**db_config)
@app.route('/api/add_data', methods=['POST'])
def add_data():
try:
data = request.json
name = data.get('name')
if name:
# 插入数据到数据库
with get_connection() as connection:
with connection.cursor() as cursor:
cursor.execute('INSERT INTO users (name) VALUES (%s)', (name,))
connection.commit()
return jsonify({'success': True, 'message': 'Data added successfully'})
else:
return jsonify({'success': False, 'message': 'Name is required'})
except Exception as e:
return jsonify({'success': False, 'message': str(e)})
@app.route('/api/query_data', methods=['GET'])
def query_data():
try:
# 查询所有数据
with get_connection() as connection:
with connection.cursor() as cursor:
cursor.execute('SELECT * FROM users')
data = cursor.fetchall()
return jsonify({'success': True, 'data': data})
except Exception as e:
return jsonify({'success': False, 'message': str(e)})
if __name__ == '__main__':
app.run(debug=True)
推荐文章: