ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL 2023.06.12
    내일배움캠프 2023. 6. 12. 20:46

    최종 프로젝트 2 주차다

     

    오늘은 장고에 이미지 사람 영역 분할 및 배경 합성 ai 를 적용시켰다.

     

    생각한 대로 잘 작동해서 놀랐다.

     

    그리고 Tour API 에서 데이터를 받아와 db에 저장하는 법을 알아냈다.

     

    https://docs.djangoproject.com/en/4.2/howto/initial-data/

     

    Django

    The web framework for perfectionists with deadlines.

    docs.djangoproject.com

    장고 공식문서를 참고하자

    json 파일로 만들려면 아래 형식을 써야한다.

    [
      {
        "model": "myapp.person",
        "pk": 1,
        "fields": {
          "first_name": "John",
          "last_name": "Lennon"
        }
      },
      {
        "model": "myapp.person",
        "pk": 2,
        "fields": {
          "first_name": "Paul",
          "last_name": "McCartney"
        }
      }

     

     

    위 형식으로 저장하려면 파이썬 파일을 하나 만들어서

    import requests
    import json
    
    url = "요청 보낼 url"
    
    response = requests.get(url)
    
    data = json.loads(response.text)
    
    new_list = []
    for item in data['response']['body']['items']['item']:
        new_data = {"model": "routes.spot"}
        new_data["pk"] = item.get("contentid", "")
        new_data["fields"] = {}
        new_data["fields"]["area"] = item.get("areacode", "")
        new_data["fields"]["sigungu"] = item.get("sigungucode", "")
        new_data["fields"]["type"] = item.get("contenttypeid", "")
        new_data["fields"]["title"] = item.get("title", "")
        new_data["fields"]["addr1"] = item.get("addr1", "")
        new_data["fields"]["addr2"] = item.get("addr2", "")
        new_data["fields"]["mapx"] = item.get("mapx", "")
        new_data["fields"]["mapy"] = item.get("mapy", "")
        new_data["fields"]["firstimage"] = item.get("firstimage", "")
        new_data["fields"]["tel"] = item.get("tel", "")
        new_list.append(new_data)
    
    with open('spot_data.json', 'w', encoding='UTF-8') as f:
        json.dump(new_list, f, ensure_ascii=False, indent=2)

    이런 식으로 작성해서 실행해 주면 된다.

     

    json 파일이 잘 저장됐다면

     python manage.py loaddata <fixturename>

    명령어로 db에 적용하자.

    '내일배움캠프' 카테고리의 다른 글

    TIL 2023.06.14  (2) 2023.06.14
    TIL 2023.06.13  (0) 2023.06.13
    WIL 내일배움캠프 13주차  (0) 2023.06.09
    TIL 2023.06.09  (0) 2023.06.09
    TIL 2023.06.08  (0) 2023.06.08
Designed by Tistory.