点击头像,进入个人中心,查看文章合集,还有更多Python相关的精彩教程等着你!
15.1 引言
网络编程是 Python 的强项之一,掌握它可以构建 网络通信、爬虫、API 服务、Web 应用 等。
本章将讲解:
- socket 编程(底层网络通信)
- requests 库进行 HTTP 请求
- http.server 搭建简单 HTTP 服务
- 使用 Flask 构建简单 Web 应用
15.2 Socket 编程
15.2.1 TCP 服务端
示例:
import socket
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("127.0.0.1", 8000))
server.listen()
print("服务器启动,等待连接...")
conn, addr = server.accept()
print("连接自:", addr)
data = conn.recv(1024)
print("收到:", data.decode())
conn.sendall(b"Hello Client")
conn.close()
server.close()
15.2.2 TCP 客户端
示例:
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("127.0.0.1", 8000))
client.sendall(b"Hello Server")
data = client.recv(1024)
print("收到:", data.decode())
client.close()
✅ 运行服务端后再运行客户端,双方可成功通信。
15.2.3 UDP 通信
示例:
# UDP 服务端
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(("127.0.0.1", 9000))
print("等待中...")
data, addr = s.recvfrom(1024)
print("收到:", data.decode(), "来自", addr)
s.sendto(b"Hello UDP", addr)
# UDP 客户端
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto(b"Hello Server", ("127.0.0.1", 9000))
data, addr = s.recvfrom(1024)
print("收到:", data.decode())
UDP 无连接,不保证可靠但更快,常用于实时音视频传输等。
15.3 HTTP 编程
15.3.1 requests 库发送 HTTP 请求
示例:
import requests
resp = requests.get("https://httpbin.org/get")
print("状态码:", resp.status_code)
print("响应JSON:", resp.json())
✅ requests 使用简单且功能强劲,是最常用的 HTTP 客户端库。
15.3.2 http.server 模块创建简单HTTP服务
示例:
from http.server import SimpleHTTPRequestHandler, HTTPServer
server = HTTPServer(("127.0.0.1", 8080), SimpleHTTPRequestHandler)
print("启动服务器 http://127.0.0.1:8080")
server.serve_forever()
会自动将当前目录作为静态网站根目录。
15.4 使用 Flask 构建 Web 应用
15.4.1 安装与基本应用
安装:
pip install flask
示例:
from flask import Flask, request
app = Flask(__name__)
@app.route("/")
def home():
return "Hello Flask!"
@app.route("/greet")
def greet():
name = request.args.get("name", "Guest")
return f"Hello {name}!"
if __name__ == "__main__":
app.run(debug=True)
启动后访问:
- http://127.0.0.1:5000/
- http://127.0.0.1:5000/greet?name=Alice
15.4.2 返回 JSON API
示例:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api/data")
def get_data():
return jsonify({"status": "ok", "data": [1,2,3]})
if __name__ == "__main__":
app.run()
你可以用浏览器或 requests.get() 测试这个 API。
15.5 小结
|
技术 |
用途 |
|
socket |
底层网络通信(TCP/UDP) |
|
requests |
发送 HTTP 请求 |
|
http.server |
快速搭建简易 HTTP 服务 |
|
Flask |
构建 Web 应用 / REST API |
✅ 掌握网络编程后,你就能实现 爬虫、接口、Web 网站、实时通信 等复杂项目。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...