当前位置: 首页 > news >正文

python实现web请求与回复

一、作为客户端发送请求(使用requests库)
import
 requests

# 发送GET请求
response 
= requests.get("https://api.example.com/data")
print("GET响应状态码:", response.status_code)
print("GET响应内容:", response.text)

# 发送带参数的GET请求
params 
= {"key1": "value1", "key2": "value2"}
response 
= requests.get("https://api.example.com/data", params=params)

# 发送POST请求(表单数据)
data 
= {"username": "admin", "password": "secret"}
response 
= requests.post("https://api.example.com/login", data=data)

# 发送POST请求(JSON数据)
json_data 
= {"name": "Alice", "age": 30}
response 
= requests.post("https://api.example.com/users", json=json_data)

# 处理响应
if response.status_code == 200:
    print("POST响应JSON:", response.json())
else:
    print("请求失败,状态码:", response.status_code)
安装requests库:
pip install requests
二、作为服务端接收请求(使用Flask框架)
from flask import Flask, request,
 jsonify

app 
= Flask(__name__)

# 处理GET请求
@app.route('/')
def home():
    return "Welcome to the Python Web Server!"

# 处理带路径参数的GET请求
@app.route('/user/<username>')
def show_user(username):
    return f"User: {username}"

# 处理POST请求(表单数据)
@app.route('/login', methods=['POST'])
def login():
    username 
= request.form.get('username')
    password 
= request.form.get('password')
    return f"Received: {username}/{password}"

# 处理POST请求(JSON数据)
@app.route('/api', methods=['POST'])
def handle_json():
    data 
= request.
json
    return jsonify({"received_data": data})

if __name__ == '__main__':
    app
.run(host='0.0.0.0', port=5000, debug=True)
安装Flask库:
pip install flask
三、完整示例流程
1. 启动服务端(保存为server.py)
from flask import Flask, request,
 jsonify

app 
= Flask(__name__)

@app.route('/api', methods=['POST'])
def handle_api():
    req_data 
= request.
json
    return jsonify({
        "status": "success",
        "received": req_data,
        "message": "Data processed successfully"
    })

if __name__ == '__main__':
    app
.run(port=5000)
2. 客户端脚本(保存为client.py)
import
 requests
import
 json

response 
= requests.post(
    "http://localhost:5000/api",
    json
={"name": "John", "action": "update"}
)

print("Status Code:", response.status_code)
print("Response Body:", json.dumps(response.json(), indent=2))
3. 运行流程
# 第一个终端窗口
python server.py

# 第二个终端窗口
python client.py

四、关键点说明
1. 客户端常用功能:
• requests.get()/requests.post() 发送请求
• params 参数添加URL参数
• data 发送表单数据
• json 发送JSON数据
• response.text 获取文本响应
• response.json() 解析JSON响应
2. 服务端关键功能:
• @app.route() 定义路由
• request.form 获取表单数据
• request.json 获取JSON数据
• jsonify() 返回JSON响应

相关文章:

  • Oracle 11G RAC重启系统异常
  • Android-ViewModel+LiveData学习总结
  • flutter 项目调试、flutter run --debug调试模式 devtools界面说明
  • 结构性断裂:中年失业潮与婚姻解体的崩溃逻辑
  • 使用 vip 加入两台 master 节点
  • 精益数据分析(77/126):问题-解决方案画布——创业团队的周度聚焦与迭代利器
  • 《Android 应用开发基础教程》——第十四章:Android 多线程编程与异步任务机制(Handler、AsyncTask、线程池等)
  • python、R、shell兼容1
  • PARSCALE:大语言模型的第三种扩展范式
  • GraphPad Prism工作表的基本操作
  • 第二届帕鲁杯 solar_Linux后门排查 WP
  • C++ 日志系统实战第五步:日志器的设计
  • 《C++ list详解》
  • vscode包含工程文件路径
  • 【VScode】python初学者的有力工具
  • java后端-海外登录(谷歌/FaceBook)
  • ETL 代表什么?ETL 开发主要做什么?
  • DeepSeek:以开源之力,引领AI技术新风潮
  • ShenNiusModularity项目源码学习(28:ShenNius.Admin.Mvc项目分析-13)
  • IPv4 地址嵌入 IPv6 的前缀转换方式详解
  • 张家港网站制作建议/网站优化排名软件
  • 哪些网站做任务可以赚钱的/市场营销在线课程
  • javascript作品网站/百度浏览器官网在线使用
  • 李宁网站建设的可行性/网络推广的方式有哪些
  • 投资理财网站开发制作/新站整站快速排名
  • 深圳门户网站建设/百度问一问人工客服怎么联系