티스토리 뷰
path Variable
GET method를 통해 데이터를 넘길 경우 경로를 변수로 사용한다. (특정 인덱스에 대한 조회)
Django에서 제품의 상세페이지 url 주소를 path Variable를 활용하여 설정하는 방법을 정리해봤다.
http://127.0.0.1:8000/products/1
제품의 상세페이지의 경우 제품의 id로 url 주소를 만들기 위해 products app의 urls.py와 models.py 코드를 수정
# products/urls.py 파일
from products.views import ProductDetailView
urlpatterns = [
path('/<int:product_id>', ProductDetailView.as_view()),
]
# products views.py 파일
class ProductDetailView(View):
def get(self, request, product_id): # urls.py에 받은 /<int:product_id> 즉, int 값을 받아옴
try : # 받아온 product_id으로 Product 모델에서 정보를 가져옴
product = Product.objects.get(id=product_id)
# 이하 생략 ..
→ 유효한 product_id로 접속(서버에 요청)할 경우
http -v get 127.0.0.1:8000/products/10
db에 저장되어있는 product_id 값의 데이터가 정상적으로 전송됨
HTTP/1.1 200 OK
Content-Length: 1041
Content-Type: application/json
Cross-Origin-Opener-Policy: same-origin
Date: Sun, 24 Jul 2022 14:28:32 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.12
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"RESULTS": {
"category": "Magazine K",
"description": "니베아는 독일 바이어스도르프의 세계적인 스킨로션과
바디케어 브랜드이다.백설공주를 의미하는 라틴어 단어에서 따온것이다.",
"isbn": "978-89-98415-05-1",
"issue_number": 6,
"language": "KOREAN",
"pages": 145,
"price": "14000.00",
"product_image_url": "https://dummyimage.com/1920x1440/001440/fff",
"published_date": "2012. 5. 3",
"size": "170 x 240 mm",
"title": "NIVEA"
}
}
→ 유효하지 않은 product_id로 접속(서버에 요청)할 경우
http -v get 127.0.0.1:8000/products/104
db가 보관하고 있는 product_id의 범위를 벗어나거나 다른 문자가 들어갈 경우 404 error 발생한다.
GET /products/104 HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: 127.0.0.1:8000
User-Agent: HTTPie/3.2.1
HTTP/1.1 404 Not Found
Content-Length: 30
Content-Type: application/json
Cross-Origin-Opener-Policy: same-origin
Date: Sun, 24 Jul 2022 14:25:36 GMT
Referrer-Policy: same-origin
Server: WSGIServer/0.2 CPython/3.9.12
Vary: Origin
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
{
"MESSAGE": "INVALID_PRODUCT"
}
'study > Django' 카테고리의 다른 글
Django - Query String (0) | 2022.08.17 |
---|---|
Django - 동일한 테이블을 참조하는 ForeignKey (0) | 2022.07.31 |
Django - JWT 발급 (0) | 2022.07.13 |
Django - 암호화 (bcrypy) (0) | 2022.07.12 |
Django - 회원 로그인 구현 (0) | 2022.07.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 면접을 위한 CS 전공 지식 노트
- 검색 결과 내 페이지네이션
- authenticate()
- API
- 암호화
- Spring
- Django tutorial
- django-environ
- 혼자 공부하는 파이썬
- Python
- git공부
- git
- 배열
- python3
- django.contrib.auth
- 한글 형태소 분석기
- error: failed to push some refs to 'https://github.com/
- 웹페이지
- 커맨드 객체
- 톰캣
- path variable
- git 공부
- musma
- 디자인 패턴
- 회원가입
- 회원 로그인
- Magazine K
- django
- 환경 변수 설정
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함