백엔드

<장고 django> 장고 Search Form & Request Data 만들기

studying develop 2022. 5. 17. 02:48

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으로 보내준 데이터가.