在Python中对外提供API通常有以下几种方式:
1. 使用Flask框架:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api', methods=['GET', 'POST'])
def api():
if request.method == 'GET':
处理GET请求
return jsonify({'message': 'GET request received'})
elif request.method == 'POST':
处理POST请求
data = request.get_json()
return jsonify({'message': 'POST request received', 'data': data})
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=5000)
2. 使用FastAPI框架:
from fastapi import FastAPI
app = FastAPI()
@app.get('/api')
def api():
return {"message": "Hello, World!"}
@app.get('/api/items/{item_id}')
def get_item(item_id: int):
return {"item_id": item_id}
@app.post('/api/items')
def create_item(item: dict):
return item
if __name__ == '__main__':
import uvicorn
uvicorn.run(app, host='0.0.0.0', port=8000)
3. 使用Django框架:
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def api(request):
if request.method == 'GET':
处理GET请求
return JsonResponse({'message': 'GET request received'})
elif request.method == 'POST':
处理POST请求
data = request.get_json()
return JsonResponse({'message': 'POST request received', 'data': data})
4. 使用WSGI服务器(如Gunicorn或uWSGI):
from wsgiref.simple_server import make_server
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b"Hello, World!"]
httpd = make_server('', 8000, application)
print('serving http on port 8000...')
httpd.serve_forever()
以上示例展示了如何使用不同的Python Web框架对外提供API接口。你可以根据自己的需求选择合适的框架,并根据框架的文档进行相应的配置和开发。