Django-toy) 서울시 도로 돌발상황 업무 서비스

Mongle·2020년 8월 31일

ToyProject

목록 보기
3/3
post-thumbnail

👉 영상으로 보기

도로 돌발상황 업무일지 시스템

개발 동기

  • json을 지원하지 않는 데이터를 다루게 되어서 xml데이터를 이용하는 방법을 찾아보았다. json과 방법이 다르지 않았다.
  • 데이터 베이스를 사용하기 위해서는 Django에서 제공하는 SQLite를 잘 활용해야한다. 데이터 베이스와 연동하고 활용하는 방법을 공부하기 위해 간단한 todo list 서비스를 만들어 보았다.

방법

udemy 강의를 통해 학습하였다. 강의에서 만든 todo list에서 더 나아가 여러 기능들을 추가했다.


문제 상황

api를 화면에 출력하면 잘 가져와지지만 받아온 api를 일부만 가져오려고 하면 사진처럼 글자가 깨져서 나왔다.
코드 상으로 봤을 때, api 까지는 잘 작동하지만 data부터 뭔가 인코딩이 잘못된 것 같았다.

def home(request):
    import xmltodict
    import requests

    api_request = requests.get("http://openapi.seoul.go.kr:8088/6d59625a4f686a7334345658594176/xml/AccInfo/1/5/")
    api = xmltodict.parse(api_request.content)
    #api_request가 가져왔으면 데이터를 xml_dict로 파싱해서 저장하고,
    
    data = api['AccInfo']['row'] 

    return render(request, 'home.html', {'api':api}, {'data':data})

결국 views에서는 api를 건들이지 못했고 html로 가져와서 필요한 데이터를 뽑아내야 했다.

{{ api.AccInfo.row.0 }}

😂 문제 해결...

return render(request, 'home.html', {'api':api, 'data':data})

이렇게 코드를 고치면 문제가 해결된다.
데이터는 하나의 딕셔너리로 묶어서 보내야한다.


보완할 부분

완료로 체크했을 때 url을 새로 연결해서 체크하면 화면이 한번 새로고침 된다. 화면 전환 없이 체크하는 방법이 있을 것 같다. 가장 보완하고 싶은 부분이다.


😸 마치며

앱을 만드는 동안 교통사고가 딱 한 번 발생했다. 큰 사고가 아니었으면 좋겠다. 하루 반나절동안 한 건의 교통사고라면... 꽤 안전한 도로가 아닌가 싶은 생각이 들었다.

👉 영상으로 보기 : 실시간 도로상황 모니터링 + 관련 업무 일지 시스템
👉 전체 소스코드 : jeongseo21/traffic_toy_project

profile
https://github.com/Jeongseo21

0개의 댓글