본문 바로가기
개발

[Django] lotto - urls.py와 views 수정

by 마스터누누 2017. 6. 28.
728x90
반응형

urls.py와 views 수정




이번 시간에는 url을 세팅 해보도록 한다.

그 전에 mysite 내부의 파일에 대해서 살펴보자


먼저 mysite 내부에 __init__.py파일이 있는데 이상하게도 이 파일은 비어있다.

이 파일의 역할은 자신이 소속되어있는 폴더가 python의 모듈이라는 것을 알리기 위한 역할이기 때문이다.

따라서 내부에 __init__.py가 있다면 python 모듈로 식별하게 된다.


그리고 setting.py는 앞선 포스팅에서 확인했듯이 장고에 대한 일반적인 스펙의 세팅을 할때 사용한다.

프로젝트 내부의 사용 되어질 어플리케이션이나 정적 파일에 대한 경로,

시간대나 언어 코드에 대한 설정이 가능하다.






그리고 우리가 이번시간에 수정해야할 urls.py에는 url에 대한 규칙이 들어있다.

urlpatterns라는 배열 안에 url 규칙들이 들어있는데 

사용자로 부터 http 요청이 오면 이 배열 내부에서 패턴을 찾아 연결시켜준다.


url함수의 동작방식은 첫 번째로 정규표현식으로 인자를 받는다.

장고는 이렇게 설정된 정규표현식을 바탕으로 요청된 url을 분석하게된다.


두번째로 연결될 경로를 지정해 주는데, 

우리는 views의 index라는 함수로 연결을 해야하기 때문에 그대로 적어준다.

또한 이렇게 연결되는 views는 다른파일이므로 

from lotto import views로 명시해줘야 urls.py에서 사용이 가능하다.


마지막으로 이 url을 대표하는 이름값을 설정해준다

지금은 사용하지 않지만 나중에 템플릿에서 a 태그등으로 경로를 쉽게 연결해주기위해서

이런 name 설정이 필요하다.


때문에 로또 앱으로 연결될 url 코드를 입력해주자

url(r'^$', views.index, name='index')

이 코드는 8000번 포트로 접근한 주소 뒤에 아무것도 없을때 views의 index로 접근하라는 말이다.





1
2
3
4
from django.http import HttpResponse
 
def index(request):
    return HttpResponse("<h1>Hello, World</h1>")
cs


여기까지 완료된 상태에서 서버를 실행하면 에러가 발생하는데,

이유는 우리가 url 경로를 지정해 주었던 views의 index 함수가 없기 때문이다.

때문에 index 함수를 지정해 주도록하자.


위와 같은 코드를 입력해 주면되는데

여기서 HttpResponse란 사용자에게 다시 응답하는 함수이다.

따라서 다시 서버를 시작하면 Hello, world라는 텍스트가 브라우저에 출력된다.


현재까지 MTV 중에 V만을 사용하여 서버를 동작해 보았다.



출처 : 인프런, 파이썬 웹 프로그래밍, Django로 웹 서비스 개발하기


반응형

댓글