-
[Python] URL Shortener #1 (feat. Django, Postman검증)Backend/Django 2021. 1. 4. 01:41728x90
url shortener 웹 페이지 개발을 위한 삽질 기록입니다.
위 사이트 처럼 url shortener를 만들어 긴 주소의 url을 압축해서 반환해주는 기능의 웹 페이지를 만들어 보겠습니다.
url shortener의 등장 배경은 트위터가 등장하면서 글자수 140자의 길이 제한을 두어 긴 url 주소링크를 포함한 트윗을 작성할 때 불편함을 해결하기 위함이라고 합니다. 즉 url shortener로 주소를 짧게 변환하여 original 주소 바로가기로 활용할 수 있게 되었습니다.
0. 먼저 Django 초기 세팅은 아래에서 참고하시면 됩니다:)
https://ninano1109.tistory.com/49?category=951763
1. DB모델링
새 프로젝트를 위한 앱(shorteners)을 생성했다면, models.py에서 Url 테이블을 만들어줍니다.
Url 테이블에는 2개의 필드는 만들어 주었는데,
1. link라는 원래 오리지날 url 주소 저장하기 위한 필드이고
2, new_link라는 짧게 압축한 새로운 url 주소 저장하기 위한 필드입니다.
그런 다음 새로운 테이블을 만들었다면, migrate를 해주어야 합니다.
# manage.py가 있는 위치에서 $ python manage.py makemigrations $ python manage.py migrate
2. serializer 파일 생성(json형태로 반환)
프론트와 통신하기 위해서는 데이터를 json 형태로 바꾸어 주어야 합니다. 이를 위한 기능이 django의 serializers 입니다.
models.py와 같은 위치에 serializers.py 파일 생성 후 아래와 같이 입력
3. urls설정
urls 주소를 설정해주어야 합니다. 2가지 urls.py에 추가해야 하는데 프로젝트(YoURL) urls.py와 앱(shorteners) 하위의 urls.py입니다.
아래 사진 맨 위에 폴더 구조를 잘 확인하세요
Project 하위 urls.py에 작성
App 하위에 urls.py 파일 생성 후 입력
4. views.py 에서 실행 함수 작성
기존주소를 DB에서 조회 후 없으면 변환해서 저장하기
Base62 기법으로 기존 주소 변환하기
변환주소를 다시 기존주소로 redirect하기
5. Postman 검증
아직 프론트 페이지가 만들어 지지 않았을 때, 백엔드로 개발을 하면서 정상 작동을 확인할 수 있는 방법으로 Postman을 사용하면 됩니다.
postman 다운로드 후 백엔드 서버를 돌리고 주소창에 서버 주소를 입력하여 GET/POST 등 선택, Headers와 Body에 필요한 정보들을 넣어 send 버튼으로 데이터 응답을 확인하거나, 오류 메세지를 볼 수 있습니다.
아래와 같이 서버 주소 입력 후 POST로 설정하고,
Body에 변환하고자 하는 링크를 아래와 같은 json(딕셔너리) 형태로 입력하고 send버튼을 눌러줍니다.
위와 같이 "detail": "Unsupported media type \"text/plain\" in request." 오류가 나온다면
입력 형식을 json 타입으로 바꾸어 주면 됩니다.
그러면 아래와 같이 정상 작동하는 것을 확인할 수 있습니다!
이상 오늘의 삽질일기 끝!
여기저기 삽질도 해보고
날려도 먹으면서
배우는 게
결국 남는거다
- Z.Sabziller
'Backend > Django' 카테고리의 다른 글
[Python] Django 장고 새 프로젝트 만들기 (feat.웹 서버 띄우기) (2) 2020.12.16