有没有办法让这个 API 调用更快?

时间:2021-03-04 10:48:09

标签: python reactjs flask axios

有一个简单的文本字段,当用户键入时,将进行 api 调用,该调用将根据用户键入的内容获取人员姓名。例如,当用户按下按钮“A”时,将立即发出 API 请求,并且将从数据库中提取所有以“A”开头的名称。目前的问题是,由于我们有大约 100 万个条目,因此每个请求大约需要 8-10 秒。有没有办法让它更快?

这是我提出的 axios 帖子请求。

  fetchingDataOnChange = () => {
    let nameValue = this.state.searchName;
    var myParams = {
        nameValue: nameValue
    }
    axios.post('/get-hcp-data', myParams) 
        .then((res) => {
            const hcps = res.data;
            this.setState({ hcps: hcps, hcpName: Object.values(hcps.hcp_details_concat) })
            console.log(res);
        }, (error) => {
            console.log(error);
        });
}

这是flask中的函数:

 @app.route('/get-hcp-data', methods=['GET', 'POST'])
 def get_hcp_data():
    value = request.get_json()
    newValue = value['nameValue']
    engine = connect_pg()
    sql = "select * from dim_hcp_details where lower(hcp_name) like lower('"+newValue+"%') limit 50"
    hcp_details = pd.read_sql_query(sql,engine)
    hcp_details['hcp_details_concat'] = "[" + hcp_details['hcp_id'] + "]" + hcp_details['hcp_name']
    hcp_dict = hcp_details.to_dict()
    return jsonify(hcp_dict)

enter image description here

0 个答案:

没有答案