프로그래밍/Django

Djangoproject 따라하기 2 / Visual Studio Code

Ask-How 2019. 6. 26. 23:57

< 오늘 할일 >

- "hello, world!"라는 말이 웹페이지에 뜨게 할 것이다.

 

< 만드는 방법 >

- 폴더(polls)를 만든다.

- views라는 곳에 쓰고 싶은 내용(hello, world)을 쓴다.

- views의 내용을 상위폴더(mysite)에서 가져올 수 있도록 urls로 연결한다.

- 이를 위해, polls폴더의 urls와 mysite의 urls를 연결한다.

 

< 실제 구동되는 방식은 이럴 것 같다 >

- http://127.0.0.1:8000/polls/을 입력하면

- mysite의 urls.py은 polls의 urls.py를 호출한다.

- polls의 urls.py에서는 views의 index를 호출한다.

- views의 index에서는 HttpResponse로 "Hello, world~"를 출력한다.

- 웹페이지에 나타난다.

 

 

[polls 폴더만들기 / VSCODE / startapp polls 실행 안됨]

 

https://docs.djangoproject.com/ko/2.1/intro/tutorial01/

 

외부로 나가는 명령을 명령프롬프트에 써야할 때다.

다음의 명령을 VSCODE의 터미널에 입력하면 실행이 안된다.

> python manage.py startapp polls

옳커니, 명령프롬프트에서는 실행이 된다.

vscode를 보니 polls 폴더가 생성되었다.

[polls - views.py 작성]

polls 폴더를 열어서, views.py를 연다.

 

# 작성
from django.http import HttpResponse

def index(request) :
    return HttpResponse("Hello, world. You're at the polls index.")
    
# 나의 해석
django.http라는 기능모음에서 HttpResponse 기능을 꺼내 사용한다.

index라는 함수를 만든다(def). 요청이 들어오면(request) 작동한다.
  작동되면 Http응답(response)을 보낸다(return). 그 내용은 ("Hello, ~index.") 이다.

[polls - urls.py 작성]

polls 폴더에 새파일 urls.py를 만든다.

그 안에 작성한다.

이 작업으로 url경로를 응답이 들어오면, views를 출력하도록 만든다.

# 작성
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]
# 나의 해석

django.urls 기능모음에서 path기능을 꺼내쓴다.

. 기능모음에서 views기능을 꺼내쓴다.



주소패턴(urlpatterns)은 경로(path)를 불러온다.

   전체경로에 빈칸(''), 즉 다른 주소가 안 붙으면, views에서 index함수를 불러온다.  == 127.0.0.1 : 8000 이면 출력된다.

   url경로의 이름은 index 이다.

 

참고 - https://tutorial.djangogirls.org/ko/django_urls/

 

 

[mysite - urls.py 작성]

# 작성
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
	path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
#해석

기존에 작성되어있는 admin은 관리자 부분이므로, 일단 패스.
django.urls 기능모음에서 include와 path를 사용할 것

주소패턴(urlpatterns)은 첫번째경로는 127.0.0.1:8000/polls/로 들어오면 polls.urls로 전송할 것.
두번째는 +admin/ 으로 들어오면 관리자페이지로 들어갈 것.

https://programmers.co.kr/learn/courses/6/lessons/467

  • app - 웹사이트를 기능별로 분류해놓은 단위
  • urlpatterns - 서버에 요청이 들어온 경우, 담당자를 지정하는 역할. url(주소, 주소에 접속하면 실행될 명령어)
  • include - 앱 접속을 위해 씁니다.

 

 

[서버연결]

각 .py 마다 저장(Ctrl+S)을 한다. 그래야 수정한 것들이 반영이 된다.

안하면 오류남.

 

명령프롬프트를 열어, 서버를 연결한다.

> python manage.py runserver

 

127.0.0.1:8000을 입력하면, 페이지가 없다고 나온다. 

이유는 우리가 작성하면서 8000 이후의 경로를 지정해주었기 때문이다.

8000까지만 입력했을때 즉  mysite의 urls에 path('', ~~)로 설정해주어야 이 주소를 사용할 수 있다.

127.0.0.1:8000/polls/를 입력하면, 우리가 views에 입력한 내용이 나타난다!

"Hello, world." 라는 문장은 언제봐도 설레는 문장이다.

127.0.0.1:8000/admin/을 입력하면, 관리자페이지가 나타난다.

 

[마지막 정리]

이렇게 연결이 되어있는 것이다.