1.Templates 폴더 만들기.
1). Templates 기본 작성
현재 우리가 만든것은 projectname:startproject 이며, app 이름은 blog이다.
Templates는 화면상에 보여주는 화면이다. 즉 우리가 알고 있는 html 을 말한다.
먼저 저번에 만든 app인 blog 앱안에 templates 폴더를 만든다.
다음으로 settings.py에서 templates폴더를 지정한다. settings.py는 프로젝트안에 있다. 우리가 만든 app안에는 없다. 여기에서 중요한것이 있다. project 안에도 views.py및 urls.py둘다 있다. 하지만 settings.py 및 admin.py가 없는 것을 확인할수 있다. 이것의 차이는 바로 관리자 페이지를 django에서 제공해주기 때문이다. 즉 프로젝트가 처음으로 생성되고 저번에 테이블을 만든 migrate는 프로젝트의 관리자 페이지 생성을 위한 행위이다.
다시 settings.py안으로 들어가서 아래의 TEMPLATES 부분을 찾는다.
TEMPLATES에서 DIRS에서 다음과 같이 수정한다.
[settings.py의 Templates 부분 수정] 'DIRS':[] → 'DIRS':[os.path.join(BASE_DIR, 'blog','templates')] |
다음으로 templates폴더에 base.html파일을 만든다.
base.html을 테스트하기 위해 위와 같이 작성한다.
다음으로 views.py에 basemain 함수를 설정한다.
해당 부분은 basemain함수에 요청을 받으면 base.html을 보여달라는 뜻이다.
다음으로 urls.py이다. urls.py는 현재 project 폴더안에만 있다. 해당 폴더에 들어가서 아래 그림처럼 from.blog.views import basemain을 추가시키고 urlpatterns 부분의 basemain을 추가 시킨다. 이부분은 웹에서 blog을 파라미터를 칠때 basemain함수를 호출시키라는 뜻이다.
브라우저에 blog로 접속하면 test 화면이 나오는 것을 확인할수 있다.
즉 django는 다음과 같이 작동한다고 보면 된다.
Client(요청) → urls.py에서 처리(blog의 basemain함수 호출) → views.py의 basemain호출되어 base.html 화면에 출력. |
Django는 위와같은 순서로 이루어진다. 여기에서 DB 즉 models.py까지 있거나 forms.py까지 추가되어 진행되며 기본적인 골격은 같다.
2). app폴더에 urls.py 만들기
여기에서 urls.py은 project폴더안에 있다. 따라서 불필요하게 project관리하는 것보다 app에서 urls 관리하는게 더 좋다. project urls.py을 다음과 같이 수정한다.
위의 그림중 include를 import 시키고 path부분에 include를 blog.urls를 추가한다. 아까전에는 blog/ , blog.basemain으로 직접 연결시켰는데 지금은 '' 에 include('blog.urls')을 하고 있다. 이말은 무슨뜻이냐면 홈페이지 메인 접속시 blog app에 urls.py을 include 시키겠다는 뜻이다. 즉 메인함수 뒤에 오는것은 blog app에 오는 urls.py를 보고 결정하겠다는 뜻이다.
다음 그림처럼 blog app에 urls.py를 추가시킨다.
추가시키고 해당 urls.py에 다음과 같이 입력한다.
뒤에 기초적인 부분은 이 blog앱의 urls.py로 추가및 변경할 것이다.
import부분도 적어줘서 진행하도록 하자. 이중 from .views import basemain은 아까 project 선언부분의 from blog.views import basemain과 같은 의미이다. 다만 폴더만 옮겨졌을 뿐이다.
역시 똑같이 테스트 진행해보면 다음과 같이 잘되는 것을 확인할수 있다.
3). name 사용법
위의 urls.py에서 name부분을 추가시켰는데 변수라고 생각하면 편하다. 즉 해당 blog 파라미터의 데이터를 집어 넣는 변수라고 보면 편하다. 추후 templates및 ajax연동할때 name 부분이 필요하다.
templates폴더의 다음과 같이 main.html 파일을 생성하고 작성한다.
[main.html] <a href = '{% url "basemain" %}'>baseGogo</a> |
생성후 blog app의 views.py에 다음과 같이 입력한다.
다음으로 blog app의 urls.py에 다음과 같이 입력한다.
위와 같이 입력후 메인페이지로 들어가면 아래의 그림처럼 baseGogo라는 위의 main.html 이 나오는 것을 확인할수 있다.
여기에서 <a href = '{% url "basemain" %}'>baseGogo</a> 이부분이 어떻게 해서 가게되는 것인가? 그것은 위의 urls.py에서 name으로 인하여 발생한 것을 확인할수 있다.
'{% url "basemain" %}'은 url basemain을 호출하는 django 의 templates name 호출 방법이다. 즉 basemain url을 해당 <a tag에 넣으라는 말이 된다.
즉 <a href = 'blog/' > baseGogo</a> 와 같아진다.
'프로그래밍 > django' 카테고리의 다른 글
Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(5) (0) | 2020.03.14 |
---|---|
Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(4) (0) | 2020.03.12 |
Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(2) (0) | 2020.03.10 |
Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(1) (0) | 2020.03.09 |
Django를 이용한 Yara Gui 만들기 (0) | 2020.03.04 |
댓글