그 전에는 이렇게 아예 컬렉션을 나눠서 저장을 했는데 문제가 이 컬렉션 별로( 술 종류별로) 어떻게 꺼내서 클라이언트단에 뿌려줄 것인가였다.
그럼 어떡함
다시 짜야지
구를 넣어줬듯이 술도 카테고리를 넣어준다.
//db.py
# 서울시 구별로 맛집을 검색
seoul_gu = ["종로구", "중구", "용산구", "성동구", "광진구", "동대문구", "중랑구", "성북구", "강북구", "도봉구", "노원구", "은평구", "서대문구", "마포구", "양천구", "강서구", "구로구", "금천구", "영등포구", "동작구", "관악구", "서초구", "강남구", "송파구", "강동구"]
seoul_sul = ["와인", "칵테일", "소주", "맥주"]
#술 종류별로 검색
for sul in seoul_sul:
# 술집안에서 구별로 또 검색
for gu in seoul_gu:
keyword = f'{gu} {sul}'
# 술집 리스트 받아오기
suljip_list = get_naver_result(keyword)
# 구별 술집 구분선
print("*"*80 + gu + sul)
# 구, 술종류 정보를 추가
for suljip in suljip_list:
suljip['gu'] = gu
suljip['sul'] = sul
#술집 프린트
pprint.pprint(suljip)
# docs에 술집들 추가
docs.append(suljip)
# 맛집 정보 저장
db.suljip.insert_many(docs)
html
// 술집 정보 요청 하기
$.ajax({
type: "GET",
url: `/suljip?gu_give=${guName}&sul_give=${sulType}`,
data: {},
success: function (response) {
if(response ['result'] == 'success') {
let suljipList = response['suljip_list'];
// TM128 좌표를 위도/경도 좌표로 변환
suljipList = getSuljipListWithGeoData(suljipList);
// 맛집을 html로 추가 (지도 밑에 리스트 목록)
addHTML(suljipList)
// 지도 나타내기
drawMap(suljipList)
} else {
alert('검색에 실패하였습니다.');
}
}
});
//app.py
@app.route('/suljip', methods=["GET"])
def get_suljip():
# gu_receive 라는 변수에 전달받은 구, 술 종류 저장
gu_receive = request.args.get('gu_give')
sul_receive = request.args.get('sul_give')
# 구, 술 종류별에 해당하는 모든 술집 목록을 불러오기
suljip_list = list(db.suljip.find({'gu': gu_receive, 'sul': sul_receive}, {'_id': False}))
# matjip_list 라는 키 값에 술집 목록을 담아 클라이언트단으로 반환
return jsonify({'result': 'success', 'suljip_list': suljip_list})
술 종류는 select 태그로 나열했고, 구 검색은 input 텍스트태그로 받아서 아래와 같이 사용자가 선택한, 적은 값을 추출했다.
let guName = $("#guName").val();
let sulType = $('select[name="sulType"]').val();
이제 기본적인 틀은 잡힌 것 같다.
정보가 나와있는 것: 가게명, 주소
정보가 안나와있는 것: 대표메뉴(카테고리x), 가격(카테고리x), 전화번호(카테고리는 있지만 정보는 없는상태)
정보가 안나와있는 것들은 아무래도 내가 노가다를 뛰어야 되지 않을까 싶다.
이제 해야될 것
1. 현재위치에서 가는 길
2. 대표메뉴(카테고리x), 가격(카테고리x), 전화번호(카테고리는 있지만 정보는 없는상태) 조사해서 디비에 추가하기
3. 가격별로 레이팅 나타내기 이건 좀 고민중이다. 술집으로 들어와서 굳이 가격과 레이팅이 필요할까 싶다.
'Project > 3. SULCHELIN <API>' 카테고리의 다른 글
project 3.5 Sulchelin 길찾기 API 끝 (0) | 2020.10.20 |
---|---|
project 3.4 Sulchelin 길찾기 api - 내 위치 찾는법, GeolocationPositionError code: 1 해결방법 (0) | 2020.10.13 |
project 3.3 Sulchelin 길찾기 api - 계속되는 실패 (0) | 2020.10.02 |
project 3.1 Sulchelin 크롤링, 데이터 디비에 저장하기 (mongoDB) (0) | 2020.09.22 |
project 3. matjip (To be determined) (0) | 2020.09.14 |