如何用HTML连接python服务器
时间: 2024-02-13 14:04:01 浏览: 24
要在HTML页面中连接Python服务器,可以使用JavaScript通过Ajax与服务器进行通信,发送HTTP请求并接收响应。以下是一个示例代码:
HTML页面:
```html
<!DOCTYPE html>
<html>
<head>
<title>HTML连接Python服务器</title>
<meta charset="utf-8">
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<button id="get-data">获取数据</button>
<div id="data"></div>
<script>
$(function() {
$('#get-data').click(function() {
$.ajax({
url: 'http://localhost:8888/data', // Python服务器地址
type: 'GET',
dataType: 'json', // 服务器返回的数据类型
success: function(data) {
$('#data').html(JSON.stringify(data));
},
error: function() {
$('#data').html('获取数据失败');
}
});
});
});
</script>
</body>
</html>
```
Python服务器:
```python
import json
import http.server
import socketserver
PORT = 8888
class MyHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/data':
# 返回数据
data = {
'name': '张三',
'age': 20,
'gender': '男'
}
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
self.wfile.write(json.dumps(data).encode())
else:
# 返回文件
http.server.SimpleHTTPRequestHandler.do_GET(self)
with socketserver.TCPServer(("", PORT), MyHandler) as httpd:
print(f"Serving at port {PORT}")
httpd.serve_forever()
```
上述代码中,HTML页面中的JavaScript通过jQuery库的ajax方法向Python服务器发送HTTP GET请求,请求地址为http://localhost:8888/data。Python服务器接收到请求后,返回一个JSON格式的数据。HTML页面中的JavaScript接收到响应后,将数据显示在页面上。
需要注意的是,由于浏览器的安全机制,JavaScript不能直接向不同域名或端口的服务器发送请求,需要在服务器端设置CORS(跨域资源共享)头部,或者使用JSONP等其他方式来解决跨域问题。