반응형

2020/05/19 - [Django] - [Django] Template

 

Model이란?

 

- 장고에서 모델은 레이아웃 역할을 담당하고 있으며, 클래스로 테이블의 역할을 한다고 이해하면 될 것 같습니다.

- 해당 소스코드는 models.py 에 작성

 

다음과 같은 형태로 작성되는 것을 확인할 수 있습니다.

 

 

models에서 사용하는 대표적인 데이터 타입

CharField() 제한을 둘 수 있는 문자형 타입
'max_length = 숫자'를 입력하면 그 길이만큼 제한
TextFieldTextField() 데이터의 길이가 큰 경우 사용
IntegerField() 32비트의 정수형 형태
BooleanField() True False 의 경우 사용하며, Null은 앞에 Null을 추가해준다.
DateTimeField() 날짜와 시간 나타낼 때 사용. 날짜만 사용하고 싶다면 DateField, 시간만 사용하고 싶다면 TimeField를 사용한다.
DecimalField() 소수점을 이용해야 하는 경우 사용

 

 

반응형

'Django' 카테고리의 다른 글

[Django] URLS  (0) 2020.05.21
[Dango] DB 연결 및 Migrate  (0) 2020.05.21
[Django] Template  (0) 2020.05.19
[Django] View  (0) 2020.05.19
[Django] Application  (0) 2020.05.19
반응형

2020/05/19 - [Django] - [Django] Application

 

[Django] Application

각각의 역할에 대해 간단하게 정리한 내용은 아래 포스팅글 참고해주세요 2020/05/18 - [Django] - Django 란 ? Django 란 ? 각각의 .py 파일들이 하는 역할은 다음과 같습니다. urls.py - URL 요청을 처리, URL을.

lightchan.tistory.com

 

Django에서 View 역할 ?

 

- MVC 패턴의 웹 개발에서 Controller와 비슷한 역할을 합니다.

 

- View는 적절한 데이터를 모델로부터 얻어와 웹 페이지 결과를 도출할 수 있도록 컨트롤하는 역할을 한다.

 

- views.py 에 각 함수는 각각의 View를 정의해줍니다.

 

def MainFunc(request):
    return render(request, 'main.html')

 

해당 함수에서는 요청이 들어오면 'main.html'로 가도록 설정되어있습니다.

 

장고는 MTV( Model, Template, View ) 패턴을 따르고 있습니다.

 

Model

- 클래스를 만드는 역할이며, 데이터를 출력 시키는 모델을 생성합니다.

- 하나의 클래스는 DB에서 테이블 역할도 해줍니다.

 

Template

- HTML 파일로 화면에 출력해줄 웹 페이지를 해당 위치에 만들어줍니다.

 

View

- 메소드를 통하여 받으며, HTTPRequest를 받아 HTTPResponse로 응답해줍니다.

 

반응형

'Django' 카테고리의 다른 글

[Django] Model  (0) 2020.05.20
[Django] Template  (0) 2020.05.19
[Django] Application  (0) 2020.05.19
[Django] 프로젝트 설정 준비  (0) 2020.05.18
Django 란 ?  (0) 2020.05.18
반응형

 

각각의 .py 파일들이 하는 역할은 다음과 같습니다.

 

urls.py

- URL 요청을 처리, URL을 기준으로 HTTP 요청을 알맞은 view 에 전달해주기 위해 사용합니다.

추가로, URL 매퍼(mapper)는 패턴(숫자 또는 문자)을 맞추고 뷰 함수에 전달합니다.

 

urlpatterns = [
    path('', views.Main),
    path('list1', views.List1),
]

위 예시에서

path('', views.Main),

이 문장이 뜻하는바는 다음과 같습니다.

 

URL에 ' 해당 URL/ ' 와 같이 ' 해당 URL ' 다음 아무것도 찍히지 않으면,

 views.py 의 'Main' 함수를 실행한다는 의미입니다.

 

path('list1', views.List1),

그렇다면 위의 한줄은 URL에 '해당URL/' 다음에 'list1'이 찍히면,

views.py의 'List1'함수를 실행한다는 의미입니다.

 

views.py

- HTTP request(요청) 수신하고 response(응답) 반환 역할을합니다.

models.py을 통해 요청에 적절할 데이터를 가져옵니다.

 

def Main(request):
    return render(request, 'main.html')

def List1(request):
    makers = Maker.objects.all()
    return render(request, 'list1.html', {'makers':makers})

 

해당 소스코드를 살펴보겠습니다.

 

def Main(request):
    return render(request, 'main.html')

urls.py 에서 보셨듯이, path가 '' 경우 Main 함수로 와야한다고 하였습니다.

Main 함수는 main.html로 보내는 것을 알 수 있습니다.

 

def List1(request):
    makers = Maker.objects.all()
    return render(request, 'list1.html', {'makers':makers})

urls.py 에서 list1을 만난 경우 'List1' 함수를 통해 'list.html'에 model로 부터 알맞은 데이터를dict 형식으로 makers라는 sql 파일을 가져오는 것을 알 수 있습니다.

models.py

- APP의 구조 정의 및 DB 기록 추가,수정,삭제 기능을 하며, query를 제공하는 파이썬 객체 설정

 

class Maker(models.Model): 
    mname = models.CharField()
    tel = models.CharField()
    addr = models.CharField()

Maker라는 클래스에 models.Model을 상속받아, 파이썬 객체를 설정한 것을 알 수 있습니다.

 

Templates 폴더 내 html 파일

- 파일 구조 및 css과 같은 디자인을 담당하는 HTML 페이지, 내용을 보여주는데 필요한 텍스트 파일입니다.

 

{% for m in makers %}
<tr>
	<td>{{m.id}}</td>
	<td><a href="/list3?id={{m.id}}">{{m.mname}}</a></td>
	<td>{{m.tel}}</td>
	<td>{{m.addr}}</td>
</tr>
{% endfor %}

 

장고에서 사용하는 문법으로 HTML 페이지에 필요한 내용을 출력해주는 것을 볼 수 있습니다.

 

 

결론:

 

view는 HTML 파일을 이용하여 HTML 페이지를 작성하고 model에서 얻어온 데이터로 채웁니다.

 

반응형

'Django' 카테고리의 다른 글

[Django] Model  (0) 2020.05.20
[Django] Template  (0) 2020.05.19
[Django] View  (0) 2020.05.19
[Django] Application  (0) 2020.05.19
[Django] 프로젝트 설정 준비  (0) 2020.05.18

+ Recent posts