내 잡다한 노트

3번째 챕터를 보고 기억해둘 부분들 본문

Web/Django

3번째 챕터를 보고 기억해둘 부분들

peanutwalnut 2022. 4. 9. 22:37

url작업을 해줄 때

프로젝트의 url과 웹 앱의 url이 있다.

더 큰 개념인 프로젝트의 url에 path와 include를 import 해서 웹 앱의 url을 include해준다.

하나의 프로젝트 내에 여러 앱이 존재할 수 있으니 각 앱에 base path를 지정하고

유지보수를 용이하게 하기 위해 각 웹앱에 urls 라우팅 파일을 정의하고 그 파일을

base path에 맵핑되도록 한다.

웹 앱의 url에서 path로 지정해준다.

ex) path('select.', views.select, name='select'),

 

url맵핑을 정의할 때 일치하는 문자열을 그대로 해도 되지만 변수화를 통해 지정할 수도 있다.

<select/int:year>    => select/1234 같은것이 해당된다

정규식을 사용해서 url 패턴을 정의할 수도 있다.

 

# 템플릿

템플릿을 이용해 html 파일과 views를 연동할 수 있다.

폴더를 따로 만들고 그 폴더 안에 웹 앱 이름으로 폴더를 하나 더 만든다.

그렇게 하면 이름이 같은 static 파일의 충돌을 방지할 수 있다.

Setting.py에서 템플릿 파일 인식을 위해 웹 앱을 INSTALLED_APPS에 추가한다.

context로 template로 넘겨줄 정보를 정의한다. 딕셔너리 형태이다.

 

A 태그로 페이지의 링크를 걸 때 같은 장고 내의 페이지라면 템플릿 언어를 사용해

실제 주소가 아닌 urls.py에 정의된 name으로 코딩할수도 있다.

이러면 url의 값이 변경되더라도 일일이 템플릿 파일을 수정할 필요가 없다.

 

기존의 template.render와 loader를 사용해서 template을 불러오는 코드는 render라는

단축 메소드 하나로 해결된다.

render(request, 'select.html', context)

장고만의 템플릿 언어에서 if와 for을 사용할 때 {% if %}로 시작하면 {% endif %}로 끝을

만들어줘야한다. for도 마찬가지이다.

변수를 쓸 때는 {{ 변수 }}

 

#Static

css, js, 이미지 파일들을 담는 폴더. 템플릿과 똑같이 폴더경로를 만들자.

Settings 파일에서 스태틱 파일 위치를 수정한다.

STATICFILES_DIRS = [

       os.path.join(BASE_DIR, "static"),

]

스태틱 파일을 쓸 때는 상단에 {% load static %}을 써줘야함.

그러면 쟝고 스태틱 모듈을 불러오게 된다.

그리고 사용하기 위해서 {% static 'image.jpg' %} 같은 문법으로 스태틱 파일을 불러올 수 있다.

 

 

#block

사이트의 반복되는 html 코드를 한 곳에 모아두고 재사용해서 사용할 수 있다.

반복되는 코드를 base.html에 모아두고 실제 페이지에 따라 다르게 보여지는 body 내부에

block을 명시한다. block의 이름은 content로 지정했다.

{% extends 'first/base.html' %} => extends 블록과 어떤 파일에서 이어서 렌더링될 지 지정해준다.

{% block content%}

         html 코드 작성~

{% endblock %}

 

 

'Web > Django' 카테고리의 다른 글

Form  (0) 2022.04.11
모델  (0) 2022.04.10
템플릿  (0) 2022.04.08
장고 웹 프로젝트와 웹 앱 만들기  (0) 2022.04.08
가상 환경 feat.아나콘다  (0) 2022.04.08