프로젝트 및 앱 생성

1.project 생성

django-admin startproject {'project name'} [.]

 

2. application 생성

(manage.py 가 있는 경로에서)

python manage.py startapp {'app name'}

settings.py에 application 등록해야 한다.

 

 

 

 

가상환경 설정

1. 터미널에서 가상환경 생성 

python3 -m venv venv

 

2. 가상환경 실행

 

source venv/Scripts/activate

activate가 있는 경로를 source로 실행한다.

(윈도우)

 

source venv/bin/activate

(맥)

 

 

3. 가상환경 설정

pip install django==3.2.13
pip install django_extenstions
pip install ipython
pip install -r requirements.txt

 

 

프로젝트 작성 틀

url.py에 처리 요청 -> views.py에서 함수 사용 -> template에 반영

 

 

1. 요청처리하기

1. 처리하고자 하는 요청 urls.py에 작성하기

2. application/views.py에 요청처리를 위한 메서드 작성하기

요청처리메서드의 첫번째 인자는 항상 request, 반환값은 HttpResponse으로 render() 메서드를 사용한다.

render(request,'template 경로'[,context])

 

 

3. application/templates 경로에서 템플릿을 찾기 때문에 application 밑에 templates 폴더를 생성한다 (ex : articles/templates)

 

 

2. 템플릿 상속 (base.html 만들기)

1. 템플릿 상속은 비슷 한 모양의 템플릿(반복되는 모양)을 재사용하기 위해서 사용한다.

2. base.html 을 만들어서 BASE_DIR/templates에 넣어준다.

3. 템플릿은 application/templates를 참조하기 때문에 BASE_DIR/templates은 참조하지 못한다.

따라서 settings.py > TEMPLATES > DIR에 BASE_DIR/templates를 추가한다.

 

 

3. form 요소에서 data 주고 받기

1. client에서 서버로 데이터를 보낼때는 form 요소를 사용한다.

2. form요소 의 input 요소를 이용하면 서버로 데이터 전송가능하다.

3. form요소의 name 속성이 전송하는 데이터의 key 가 된다.

4. form 요소의 action 속성은 데이터를 전송하는 목적 URL이다.

5. form 요소의 method 속성은 데이터를 전송하는 방식(GET, POST)이다.

서버에서 데이터를 얻어올때(검색하기, 게시글보기,화면 요청 등)는 GET, 서버로 데이터를 전송(게시글 작성, 로그인 등)할 때는 POST 이다. post요청을 보낼 때는 django 보안요소 때문에 csrf token을 보내줘야한다.

 

 

4. variable routing 은 URL에 정보를 담아서 요청을 생성하는 방식이다. 예) /articles/<str:name>/

 

 

 

5. url naming

1. path('catch/', views.catch, name='catch'), 형태로 url에 이름을 작성하므로써, 중복되는 url을 작성하는 것을 방지한다.

2. url 태그를 사용하면 된다.{% url 'articles:catch' %}

 

 

 

6. app url mapping

1. 모든 url을 project내에서 처리하지 않고, 각 application 마다 urls.py를 생성하여 url을 처리할 수 있도록 한다.

2. project urls.py에는 path('articles/', include('articles.urls')), 형태로 url 을 전달을 위한 include 함수를 사용한다.

3. application urls.py에는 처리할 url만 작성한다.

'Back-end > Django' 카테고리의 다른 글

RDB 관계 - 1:1, 1:N, M:N / 외래키(Foreign Key)  (0) 2022.10.05
쿠키(cookie), 세션(session)  (0) 2022.09.15
Authentication(인증) - accounts.User  (0) 2022.09.15
django - Model, CRUD, admin  (0) 2022.09.02
MVC, MVT(MTV), Django  (0) 2022.09.02