You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
현재 로그인한 user에 들어있는 개인정보(나이, 주거래은행 등)를 바탕으로 유사한 특징을 가진 유저들이 많이 가입한 순서로 3개의 상품의 이름과 상품코드를 받아옴
importosimportsysimportpandasaspdfromdjango.dbimportconnectionimportdjangofromdjango.confimportsettings# 프로젝트 루트 디렉토리를 PYTHONPATH에 추가project_root=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, project_root)
# Django settings 초기화os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'final_pjt_back.settings')
django.setup()
# 예금# 비슷한 나이(+5살)의 사람들이 가장 많이 가입한 3개defdeposit_recommend_age(target_age):
Query_String=f""" SELECT b.deposit_id FROM accounts_user a INNER JOIN accounts_user_deposit b ON a.id = b.user_id WHERE a.age BETWEEN {target_age-5} AND {target_age+5} """withconnection.cursor() ascursor:
cursor.execute(Query_String)
rows=cursor.fetchall()
columns= [col[0] forcolincursor.description]
df=pd.DataFrame(rows, columns=columns)
top_deposits=df['deposit_id'].value_counts().nlargest(3).index.values.tolist()
ifnottop_deposits:
return []
deposits_str=','.join(map(str, top_deposits))
Query_String=f""" SELECT fin_prdt_cd, fin_prdt_nm FROM banks_deposit WHERE id IN ({deposits_str}) """withconnection.cursor() ascursor:
cursor.execute(Query_String)
rows=cursor.fetchall()
columns= [col[0] forcolincursor.description]
result_df=pd.DataFrame(rows, columns=columns)
result_list=result_df.to_dict(orient='records')
returnresult_list
프론트엔드에서 데이터를 요청할 백엔드 view 함수에서 받은 유저 정보를 함수 인자로 넣어 1번 함수로 보냄 그 후 받은 정보를 프론트엔드로 보내줌