일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- auc
- 그리디
- find_all()
- pandas
- 잡담
- 원소주
- pos_tag
- Logistic linear
- AI
- Roc curve
- 이것이 코딩 테스트다
- beautifulsoup
- stopwords
- category_encoders
- Django
- selenium
- PYTHON
- semi-project
- Trouble shooting
- IOPub
- 인공지능
- 크롤링
- ML
- 파일입출력
- 트러블슈팅
- aof
- SMTP
- EarlyStopping
- json
- 머신러닝
- Today
- Total
개발 블로그
[Django] lotto 번호 자동생성 웹 서비스 (01. MTV패턴, 환경구축) 본문
Django의 입문 튜토리얼인 lotto웹사이트 제작을 진행해보겠습니다.
튜토리얼 시작에 앞서 장고의 디자인패턴인 MVT패턴에 대해 짚고 넘어가겠습니다.
00. Django - MTV 패턴
우선 Django프레임워크는 MTV Pattern라는 디자인 패턴을 가지고 있습니다.
- Model : 데이터베이스 조작
- Template : 사용자 인터페이스 구현
- View : 내부 계산 & 데이터 처리 로직, Model로 부터 데이터를 쉽게 가져오게 됨
MVC모델과 비교했을때 장고의 Template이 View의 역할을 하고 장고의 View는 url을 parsing하는 controller의 역할을 한다고 볼 수 있습니다.
웹에서 장고의 MTV 패턴은 다음과 같이 동작합니다.
00_01 MVT 패턴 & Django inside
아래는 장고의 동작 과정을 나타낸 그림으로 사용자는 주로 초록상 상자로 표시된 부분을 코딩합니다.
1) URLconf
URL은 주로 다음과 같이 구성됩니다.
- 클라이언트가 특정 페이지를 요청하기 위해 서버에 URL을 보내면 서버는 URLconf 모듈을 이용해 URL을 분석합니다.
- URL/View 맵핑을 위해 사용하는 path 함수는 함수 내 변수로 주어진 URL과 요청받은 URL이 일치하면 특정View를 호출합니다.
장고 1.x 버전에서는 url 함수를 사용했지만, 장고 2.x 버전부터는 path 함수를 사용합니다.
url(r'^(?P<pk>\d+)/vote/$', views.vote, name='vote')
path('<int:pk>/vote/', views.vote, name='vote')
01. 프로젝트 생성하기
그럼 이제 Django를 이용한 웹사이트 만들기 튜토리얼을 시작해보겠습니다.
01_01) 가상환경 및 장고 설치
우선 장고 프로젝트를 진행할 폴더를 위의 경로에 만들어주고 관리자 권한으로 실행한 cmd창에서 접근합니다.
그리고 다음과 같이 가상 환경과 장고를 install해줍니다.
pip install virtualenv==20.13.2 -> 가상 환경을 만들어주는 라이브러리입니다.
virtualenv django_env -> django_env 라는 이름으로 가상 환경을 새로이 만듭니다.
django_env\Scripts\activate -> Scripts 폴더 내의 activate 파일을 실행해 가상 환경을 활성화합니다.
pip install django==3.2 -> 가상 환경위에 장고를 설치해줍니다.
01_02) 장고 프로젝트 생성
django-admin startproject [프로젝트 이름]
위의 명령어를 통해 프로젝트를 생성해 줍니다. 저는 site_1이라는 이름으로 프로젝트를 생성했기 때문에
django-admin startproject site_1 을 입력했습니다.
01_03) 장고 앱 생성
python manage.py startapp [앱 이름]
위의 명령어를 입력하여 앱(웹사이트 내에 있는 하나의 기능들)폴더를 만들어 줍니다.
이때 settings.py파일에서 INSTALLED_APPS에 앱을 추가해 주어야 합니다.
01_04) 장고 프로젝트 server 실행
python manage.py runserver
cmd창에서 위의 명령어를 입력한 후에 정상적으로 서버가 작동한다면 웹에 로컬서버주소(127.0.0.1:8000)를 입력한다면 장고 웹페이지가 뜨는 것을 확인 할 수 있습니다.
위의 과정을 진행한 폴더를 VScode로 폴더를 불러오면 다음과 같은 파일이 있는걸 확인 할 수 있습니다.
(어느정도 진행하고 찍은 캡처라서 맨 처음 파일의 상태와는 다를 수 있습니다.)
이제 웹사이트를 만들기 위한 기본적인 세팅은 끝났습니다. 어떤 웹사이트를 만들던 위의 과정은 시작할 때 계속 거쳐야될 과정일 것입니다.
다음에는 앱의 기능을 구현하는 과정을 진행해보겠습니다:)
'Django' 카테고리의 다른 글
[Django] lotto 번호 자동생성 웹 서비스 (02. 웹 구현하기) (0) | 2022.05.17 |
---|---|
[Django] 관리자(admin)페이지 모델객체 추가 안될 때(settings.py / INSTALLED_APPS) (0) | 2022.05.17 |
[AI SCHOOL 5기] 웹개발 시작 (0) | 2022.05.13 |