22강 정리입니다.
<form action='/articles/' method='GET'>
<input type='text' name='q'/>
<input type='submit'/>
</form>
html form에 name을 주고 검색을 하면
이런식으로 name이 붙어서 나온다.
form에 action도 새로 알게됐는데, 검색하면 action의 링크로 간다. 뒤에 q랑 검색어가 붙어서
form에 method를 GET으로 해줌으로서 GET으로 넘어가는듯?
위 쿼리를 받아 사용하는 부분은 아래와 같다.
def article_search_view(request):
# print(dir(request)) # 이걸로 요청을 알 수 있어.
print(request.GET) # <QueryDict: {'q': ['4']}> 이게 나오네
query_dict = request.GET # this is a dictionary
query = query_dict.get("q")
try:
query = int(query_dict.get("q"))
except:
query = None
article_obj = None
if query is not None:
article_obj = Article.objects.get(id= )
context = {"object": article_obj}
return render(request, "articles/search.html", context=context)
위 같은 경로로 가는 이유는 urls에서 path('articles/', views.article_search_view)를 추가해주어서 그렇다.
또한 위 html의 form에서 action을 '/articles/' 로 했기에 url에서 정해준거 처럼 view가 정해진다.
첨알게된 표현은, request.GET을 하면 데이터가 넘어오네 ... GET으로 보내준 데이터가.
'백엔드' 카테고리의 다른 글
django - OneToMany realation - foreignKey (0) | 2023.01.15 |
---|---|
<장고 Django> Register Model in the Admin, 어드민 페이지에 모델 추가하기. (0) | 2022.05.17 |
<장고> Super Users, Staff Users & the Django Admin (0) | 2022.05.17 |
<장고 django> Dynamic URL Routing, 동적 url 라우팅하기 (0) | 2022.05.17 |
<장고 Django> 장고 강의 추천3, 18강 뷰에서 데이터를 리스트로 표현하기 (0) | 2022.05.16 |