在Python中处理POST和GET变量是Web开发中的基础操作,通常通过框架(如Flask、Django)或标准库(如http.server
)实现。以下是详细说明:
/path?key=value
),适合数据查询。from flask import Flask, request
app = Flask(__name__)
# 处理GET请求
@app.route('/get', methods=['GET'])
def handle_get():
name = request.args.get('name') # 获取URL参数
return f"GET参数: {name}"
# 处理POST请求(如表单提交)
@app.route('/post', methods=['POST'])
def handle_post():
data = request.form.get('data') # 获取表单数据
return f"POST参数: {data}"
# 处理JSON格式的POST请求
@app.route('/json', methods=['POST'])
def handle_json():
json_data = request.json # 直接解析JSON
return f"JSON数据: {json_data}"
if __name__ == '__main__':
app.run()
from django.http import HttpResponse
from django.views import View
class GetView(View):
def get(self, request):
name = request.GET.get('name') # GET参数
return HttpResponse(f"GET参数: {name}")
class PostView(View):
def post(self, request):
data = request.POST.get('data') # 表单数据
return HttpResponse(f"POST参数: {data}")
def post_json(self, request):
import json
json_data = json.loads(request.body) # 手动解析JSON
return HttpResponse(f"JSON数据: {json_data}")
from http.server import BaseHTTPRequestHandler
import urllib.parse
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
query = urllib.parse.urlparse(self.path).query
params = urllib.parse.parse_qs(query) # 解析URL参数
self.send_response(200)
self.end_headers()
self.wfile.write(f"GET参数: {params}".encode())
def do_POST(self):
content_length = int(self.headers['Content-Length'])
post_data = self.rfile.read(content_length).decode() # 读取请求体
self.send_response(200)
self.end_headers()
self.wfile.write(f"POST数据: {post_data}".encode())
Content-Type
(如application/x-www-form-urlencoded
)。通过上述方法,可高效处理Web开发中的请求参数。