파이썬 장고(Django) 에서 URL 로 매개변수 넘기기(GET방식)
파이썬의 장고 프레임워크에서 네이버의 검색을 보면
https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=부산외대
와 같이 URL에서 매개변수를 보낼 수 있습니다.
파이썬 장고에서의 방법은 아래와 같습니다.
1. URL 매핑(urls.py)
1 2 3 4 5 6 7 8 | from django.contrib import admin from django.urls import path, include from FristApp.views import * urlpatterns = [ path('admin/', admin.site.urls), path('', include('FristApp.urls')), ] | cs |
일단 프로젝트의 urls.py 에서 path를 공백으로 하였습니다. 즉 장고 서버를 실행하고 http://127.0.0.1:8000/ 요청을 하면 FristApp 의 urls.py를 포함시켰기 때문에, FristApp에 urls로 이동하게 됩니다.
2. FristApp URL 매핑(urls.py)
1 2 3 4 5 6 | from django.urls import path from . import views urlpatterns = [ path('<word>/', views.test), ] | cs |
그리고 Include 된 FristApp의 urls.py 에서는 <word>/ 가 존재하는데 http://127.0.0.1:8000/<word>/ 라고 생각하시면 될 것입니다. word의 데이터 타입은 str 입니다. 즉 문자열이죠, 장고에서는 더불어 더 많은 포맷을 제공합니다. 자세한 내용은 https://docs.djangoproject.com/en/2.1/topics/http/urls/ 공식 문서인 장고홈페이지를 참고하시면 될 것 같습니다.
3. FristApp의 views.py
1 2 | def test(request, word): return HttpResponse("넘어온 데이터 : "+word) | cs |
urls.py 에서 views.py 의 test 로 매핑을 하였습니다. 당연히 매개변수를 넘겨줬으니 받아야 되기 때문에 test의 매개변수로는 word 가 들어갑니다. 여기서 path 의 변수명을 word 로 지정했기 때문에 test 함수에서도 매개변수 명을 똑같이 해야 합니다. 그러지 않으면 Type 에러를 발생시킵니다.
4. 테스트 및 결과 확인
만약 http://127.0.0.1:8000/ 만 요청했으면 아래와 같이 찾을 수 없다는 404 에러가 발생합니다.
'기타 > 기타 잡다한 것들' 카테고리의 다른 글
[딥러닝기초] 파이썬 넘파이(numpy) 기본 사용법 (0) | 2018.10.27 |
---|---|
[파이썬기초] 클래스(Class) (0) | 2018.10.27 |
아나콘다(Anaconda) 4.5 버전에서 KoNLPy(형태소분석기) 설치하기 (0) | 2018.10.19 |
파이썬 날짜와 시간을 다루는 패키지(datetime) (0) | 2018.10.18 |
아나콘다 파이썬 장고 프레임워크에서 sqllite 사용 및 슈퍼유저 생성하기 (0) | 2018.10.03 |