티스토리 뷰

🐍/Django

[Django] 튜토리얼 part 1 (2) - 앱 만들기

사용자 eungding 2020. 2. 8. 22:46
728x90
반응형

장고에서는 앱이라는 개념이 있습니다. 


아래의 명령어로 polls라는 앱을 만들어보겠습니다. 

python manage.py startapp polls

 

 

그럼 이렇게 앱 관련 템플릿 파일이 생깁니다. 

 

그다음 mysite > settings.py에 가서 polls 앱을 등록해주세요

 

 

 

 http://localhost:8000/polls/ 이 주소로 들어오면 polls 페이지를 보여주기 위한 작업을 진행하겠습니다 :-) 


mysite의 urls.py 에 들어가보면

urlpatterns에 admin이 정의되어있습니다. 

그래서  http://localhost:8000/admin/ 으로 들어가면 관리자 홈페이지가 나오게 되는 거죠...!! 

 

django.urls 에 있는 include함수를 import해주고 아래에 polls를 추가해주세요

 

 

include() 는 다른 URLconf를 레퍼런스할 수 있도록 해주는 function 이라고 하네요. 

 

그리고 앞으로 다른 URL Pattern을 쓸때마다 include함수를 써야한다고, admin만 예외 케이스라고 나와있습니다. 

 

근데 polls 앱에는 urls라는 파일이 없습니다.

urls.py를 만들어주세요! 

 

그리고 urls.py에 코드를 작성하기 전, views.py에 가서 함수를 하나 만들어줍니다. 

 

request를 받고 "Hello, world~" 를 응답으로 주는 index라는 이름의 함수 입니다.

 

그리고 urls.py에 가서 아래와 같이 코드를 작성해주세요. 

polls/ 로 들어오면 views에 정의한 index함수를 실행시켜주겠다. 라는 코드입니다.

path 함수는 아래의 설명을 참고해주세요. 

아래의 사진을 보면 name은 안넣어도 되는 argument이므로 빼도 잘 작동합니다! 

 


https://docs.djangoproject.com/en/3.0/ref/urls/#path

path의 argument들을 살펴보겠습니다. 

route와 view는 필수, kwargs과 name은 옵션입니다.

 

[1] route 

URL pattern을 포함한 string 입니다.
예를들어  https://www.example.com/myapp/ 이 URL를 쓰고 싶다면 route에 myapp/ 을 넘겨주면 됩니다.

 

[2] view

views.py에 정의한 function 이름을 넘겨주면 됩니다. 
장고가 매칭되는 URL pattern을 찾았다면 HttpRequest object를 가지고 넘겨준 view function을 call 합니다.

 

==> 그래서 아까 우리는 views.index를 넘겨줬고, index함수를 만들때도 request라는 input을 받게 만들었죠 :) 

 

[3]  kwargs

Arbitrary keyword arguments can be passed in a dictionary to the target view. We aren’t going to use this feature of Django in the tutorial.

 

==> 다른 튜토리얼하고 번역 예정.

 

[4] name

Naming your URL lets you refer to it unambiguously from elsewhere in Django, especially from within templates. This powerful feature allows you to make global changes to the URL patterns of your project while only touching a single file.

When you’re comfortable with the basic request and response flow, read part 2 of this tutorial to start working with the database. 

 

==> 다른 튜토리얼하고 번역 예정.

 


 

 

이렇게 코드를 작성하고 아래의 명령어로 runserver 해줍니다. 

python manage.py runserver

 

 

그리고 localhost/polls/ 로 들어가면 views에 정의한 index함수가 잘 실행되는 것을 볼 수 있습니다 :-) 

 

그리고 신기하게 다른 컴퓨터에서 서버를 돌리고 있는 "현재 저의 맥 IP:8000/polls/" 로 접속하면 

터미널에 이렇게 뜨네요 😮 

 

728x90
반응형
댓글
댓글쓰기 폼