일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 반응형
- 프로그래머스
- 20492번
- 파이썬무료강의
- useState
- 네이버커넥트재단
- ㅐㄱ이
- 스파르타코딩클럽
- 프로그래머스입문
- 개인정보수집유효기간
- 스파르타
- css
- jquery
- 코딩기초트레이닝
- GIT
- python
- 무료강의
- 22938번
- MongoDB
- sql
- 파이썬
- 프론트엔드
- error
- html
- 장고 다중이미지
- 참가후기
- 장고이미지처리
- React
- SEF2022
- django multi image
- Today
- Total
코딩,해볼까
06.20. bs4로 스크랩한 코드를 나의 장고 프로젝트에 합치기 본문
🏳️🌈 아이디 찾기 , 비밀번호 찾기 구현 해보고 싶다.
1. 문제점
크롤링을 맡은 팀원의 컴퓨터에서 postgreSQL을 위한 psycopg2 의 오류가 있었다.
이로 인해 크롤링을 다른 레포지토리로 진행하였고, 이를 우리의 프로젝트에 합쳐야 했다.
1) db에 저장하여 db를 불러와서 연결하기
2) .json 파일로 만들어 연결하기
3) django model을 만들어 그 모델 안에 크롤링 데이터들이 저장되도록 한다.
이 중 2번으로 진행하고 싶어서 자료를 계속해서 찾았지만, 어떻게 해야할 지 모르겠다.
2. 시행착오
▪️ 파이썬 requests를 이용해서 json 데이터를 HTTP POST로 전송 (GET도 비슷하다.) : requests.post()
import requests
url = 'http://my_server.net/send_json_data/'
my_json_data = [{ "my_key_1": "my_value_1"}, {"my_key_2":"my_value_2"}]
result = requests.post(url, json=my_json_data)
print(result.text)
3. 해결방법
모델을 하나 생성하기로 했다.
모델 생성 시 상속으로 생성해보고 싶었는데, 다음에 바꿔보기로 했다. (DB설계 - 클래스 모델 상속)
내가 작성한 코드를 실행하기 위한 중요한 단계!
장고가 이 파일에서 셋팅 된 후 models를 가져와야 인식이 된다.
django.setup() 이후에 모델을 import해야 한다.
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', "Backend.settings") # my project name
import django
django.setup()
from {your_app} import models
내가 작성한 코드 파이썬 파일은 manage.py 와 같은 곳에 위치한다.
모델은 아래와 같이 작성한다.
for item in thumbnail_items:
event_title = item.find(class_="tit").text.strip()
event_date = item.find(class_="thumb_date").text.split(" ~ ")
event_img = item.find("img")["src"]
models.EventList(
title=event_title,
start_date=event_date[0],
end_date=event_date[1],
image=event_img,
).save()
4. 알게된 점
▪️ 결국 오타때문에 생긴 오류였지만.. 새로운 오류를 만났다.
class EventListView(APIView):
def get(self, request):
serializer = EventListSerializer(EventList, data=request.data)
return Response(serializer, status=status.HTTP_200_OK)
▪️ GenericAPIView를 사용해 get 요청 없이도 queryset으로 리스트를 불러올 수 있다.
GenericAPIView 공부하기(1) / GenericAPIView 공부하기(2)
▪️ DataField에 대한 개념을 읽고, 직접 사용해봤다.
.▪️ split() 의 다양한 종류를 알고, 직접 사용해봤다.
▪️ json 파일을 연결하면서 os.path 는 경로를 찾아주는 다양한 모듈이 있다는 것을 알았다.
os와 os.path 모듈(1) / os와 os.path 모듈(2) / os.path.join / 장고에서 json파일 읽히지 않습니다.
'Back > TIL' 카테고리의 다른 글
06.22. 최종 프로젝트 / 프론트 배포 및 백엔드 배포 수정 (0) | 2023.06.23 |
---|---|
06.21. index.html js연결 / AWS S3 Frontend 배포 (0) | 2023.06.22 |
06.19. Docker로 AWS EC2 Backend 배포 (0) | 2023.06.19 |
06.17. 최종 프로젝트 / 도커, 도커 컴포즈란? 이해하고 배포하기 (0) | 2023.06.18 |
06.15. 최종 프로젝트 / 취합 및 테스트 진행 (0) | 2023.06.16 |