728x90
urls.py에서 url을 작성할 때 뒤쪽에 실행될 views의 함수를 적음으로써 그 함수가 실행되도록 할 수 있다.
이때 url을 통해 받은 내용을 함수로 전달해줄 수도 있다.
예를 들어 post라는 app안에서 url의 뒤쪽에 /20 이라고 주소창에 치면 20을 이용한 함수가 실행되도록 하고자 한다면
path('<int:a>/',views.post_detail),
이때 <int:a>는 a라는 인자를 views.py안에 있는 post_detail이라는 함수에 전달할 예정인데 인수의 이름은
a이고 type은 int라는 것을 의미한다.
그리고 views.py의 post_detail에는
def post_detail(request:HttpRequest, a:int):
return HttpResponse(f"{a}")
})
라고 작성한다
이렇게 하면 localhost:8000/post/10 검색 시 10이 뜰 것이다.
이때 이 {a}를 활용하여 다양한 표현을 할 수 있다.
예를 들어 a를 pk로 하는 post 모델의 object들을 불러오고 싶다고 하자
def post_detail(request:HttpRequest, a:int) ->HttpResponse:
post = Post.objects.get(pk=a)
return render(request, 'instagram/post_detail.html',{
'post':post, #이렇게 post object내용을 post_detail.html으로 전달
})
이렇게 하면 pk 가 a인 Post model의 object들이 post 에 저장되어 post_detail.html이라는 파일로 전달되고 거기서 post를 이용해 이런 저런 것들을 할 수 있다.
728x90
'웹개발 > django' 카테고리의 다른 글
[Django] fk의 field를 filtering 하기 (ORM) (0) | 2022.01.31 |
---|---|
[Django] makemigrations 취소하기, migrate 취소하기 (0) | 2021.10.21 |
on_delete 에 관하여 (0) | 2020.09.13 |
django에서 핸드폰 번호 추가하기 (0) | 2020.09.12 |