30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from datetime import datetime, timezone
|
|
from flask import request, jsonify
|
|
|
|
def make_response(status="success", data=None, errors=None, message=None, extra=None):
|
|
"""统一响应格式"""
|
|
response = {
|
|
"status": status,
|
|
"data": data or {},
|
|
"errors": errors or [],
|
|
"message": message or ("操作成功" if status == "success" else "操作失败"),
|
|
"timestamp": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
|
}
|
|
if extra:
|
|
response.update(extra)
|
|
return response
|
|
|
|
def register_cors(app):
|
|
"""统一注册 CORS"""
|
|
@app.after_request
|
|
def after_request(response):
|
|
origin = request.headers.get('Origin', '*')
|
|
response.headers['Access-Control-Allow-Origin'] = origin
|
|
response.headers['Access-Control-Allow-Credentials'] = 'true'
|
|
response.headers['Access-Control-Allow-Headers'] = 'Content-Type,Authorization'
|
|
response.headers['Access-Control-Allow-Methods'] = 'GET,PUT,POST,DELETE,OPTIONS'
|
|
return response
|
|
|
|
@app.route('/config', methods=['OPTIONS'])
|
|
def config_options():
|
|
return '', 200 |