Flask 是一個 Python Web 開發框架,而 C++ 是一種不同的編程語言
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api', methods=['POST'])
def api():
data = request.json
# 這里可以處理數據,例如將其傳遞給 C++ 函數
result = process_data(data)
return jsonify(result)
if __name__ == '__main__':
app.run()
process_data
函數。為了從 Python 調用 C++ 函數,你需要使用一個庫,如 cppyy 或者 cython。這里我們使用 cppyy:首先,安裝 cppyy:
pip install cppyy
然后,創建一個名為 process_data.cpp
的 C++ 文件,包含 process_data
函數的實現:
#include<iostream>
#include<string>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
extern "C" {
void process_data(const char* input, char** output) {
// 解析輸入 JSON
json data = json::parse(input);
// 處理數據
// ...
// 將結果轉換為 JSON 字符串
std::string result_str = data.dump();
// 分配內存并返回結果
*output = new char[result_str.size() + 1];
std::copy(result_str.begin(), result_str.end(), *output);
(*output)[result_str.size()] = '\0';
}
}
import cppyy
cppyy.include("nlohmann/json.hpp")
cppyy.load_library("path/to/process_data.cpp")
def process_data(data):
input_str = json.dumps(data)
output = cppyy.nullptr(cppyy.c_char_p())
cppyy.gbl.process_data(input_str.encode('utf-8'), cppyy.addressof(output))
result = json.loads(cppyy.c_char_p(output).decode('utf-8'))
cppyy.delete(output)
return result
/api
端點發送 JSON 數據。C++ 函數將處理該數據,并將結果返回給 Flask 應用。注意:這只是一個簡單的示例,實際應用中可能需要根據具體需求進行調整。