經測試,我們決定前端可以同時選擇多個類型的崗位進行查詢,以顯示相應的公司崗位信息
于是,修改后端函數的邏輯:
后端
首先,因為要對checkList中的job_name進行模糊匹配查詢,于是使用以下代碼:
def showCompanyJobInformationWithOfset():if request.method == "POST":company = request.json['company']# 如果之后添加”前端“崗位,則應前端再傳遞一個”崗位“信息,從而到數據庫中查詢相應的數據job_list = request.json['checkList']offset = request.json['offset']if request.method == "GET":company = request.args.get['company']job_list = request.json['checkList']offset = request.json['offset']# 創建Database類的對象sql,test為需要訪問的數據庫名字 具體可見Database類的構造函數sql = Database("xmsx")try:# 構建SQL查詢語句,使用LIKE和OR關鍵字進行模糊匹配job_conditions = " OR ".join([f"job_name LIKE '%{job}%'" for job in job_list])sql_query = f"SELECT job_name, job_require FROM companyandjob WHERE company='{company}' AND ({job_conditions}) LIMIT {offset}, 1"result = sql.execute(sql_query)print(result)except Exception as e:return {'status':"error", 'message': "code error"}else:print(result)if not len(result) == 0:#返回查詢結果,根據需要進行處理return {'status':'success','job':result[0][0],'requirement':result[0][1],}else:return {'status':'success','job':'無','requirement':'無'}
但是報錯:
?即提示sql查詢錯誤。于是繼續尋找解決方法:
try:# 構建SQL查詢語句,使用LIKE和OR關鍵字進行模糊匹配job_conditions = " OR ".join([f"job_name LIKE '%{job}%'" for job in job_list])sql_query = f"SELECT job_name, job_require FROM companyandjob WHERE company='{company}' AND ({job_conditions}) LIMIT {offset}, 1"result = sql.execute(sql_query)print(result)
?修改為上述代碼,當前端選擇相應的崗位時,則顯示相應的數據內容
前端
前端同時也要修改邏輯。前端改成首次進入“公司一覽”界面時,默認展示所有類別崗位的相關信息。