Django 총정리1
언제나 프로그램이 힘들때면 documentation을 보기! 회사에 들어가면 documentation 을 보고 그 프로그램을 직접 활용할 줄 알아야 한다.
장고를 사용하기 쉽게끔 스텝바이스텝으로 정리되어있는 사이트! 독학하기에 추천!
웹 프레임워크란?
프레임워크란 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조이며, 소프트웨어 개발에 있어서 하나의 뼈대 역할을 한다. 프레임워크는 보통 클래스와 라이브러리가 합쳐진 형태이다. 웹 프레임워크는 웹사이트를 만들기 위한 프레임워크로 풀스택 프레임워크와 백엔드 프레임워크로 나뉘어져 있는데 이중 Django는 python 기반의 오픈소스 풀스택 프레임워크이다.
MTV 패턴
MVC(Model-View-Controller) 패턴이란? 데이터, 사용자 인터페이스, 데이터 처리 로직을 구분해서 한 요소가 다른 요소에 영향을 주지 않도록 하는 패턴이다. 장고의 경우 이 패턴이 MTV(Model-Templates-View)패턴으로 구성 되어있다.
(나한테 컴퓨터로 다이어그램을 그릴 능력을 바라지 마세요 블로그 제목에 써있잖아요)
Model - Model
일반적인 MVC 패턴에서 model 역할을 한다. 앱 안에서 세부적인 기능을 수행하는 객체를 의미한다.
Template - View
일반적인 MVC 패턴에서 View 역할을 한다. view(controller)에서 요구하는 데이터를 동적으로 적용해 화면에 보여주는 방식, 즉 프레젠테이션을 저장하는 곳!
View - Controller
메소드로 구현되며, HTTPRequest를 받아 HTTPResponse를 리턴하는 형태이다.
Model과 Template를 중개한다!
개발환경
나의 경우 수업시간에는 온라인 ide를 사용하긴 하지만 기본 vscode를 사용한다! 사용중인 파이썬 버전은 3.7.3!
만약 크롬북등을 이용해서 개발하고 싶다면 가상환경을 만들어서 장고를 설치하기도 하는듯 하다.
Installation
$ pip install Django==version
현재기준(2020.04.18) Django의 최신 버전은 3.0.5! 나같은 경우는 2.1.15로 장고를 배웠기 때문에 2.1.15로 장고를 사용중이다. 로컬에서 개발할 때도 2.1.15인데 아마 수업이 끝나는 대로 업데이트를 해서 사용하지 않을까 싶다.
project 만들기
website를 만들어 보자 짠짠 어느 프로그래밍이나 다 똑같겠지만 항상
- 대/소문자 구분하기
- 단/복수 구분하기
- ,(쉼표) 썼는지 확인해주기
- spelling check
는 습관적으로 하도록 하자! 왜냐하면 (튜토리얼을 제대로 따라간다는 가정 하에) 우리들의 error의 80퍼센트는 위의 네 개에서 나올 확률이 높기 때문이다.
여튼, 장고를 쓰기 위해서는 먼저 프로젝트를 만들고, 그 안에 애플리케이션을 하나하나씩 제작해 나가야 한다!
먼저 프로젝트를 만들어 보자
$ django-admin startproject projectname
간단하게 프로젝트를 만들었다!
나는 샘플이라는 이름으로 프로젝트를 만들었고, vscode에 이런 폴더가 생성된다
사실 init은 아직 써본 적이 없고 wsgi.py는 pythonanywhere에서 서버 설정할 때 썼었다. 그러니까, 잘 모른다는 이야기다ㅎ
나는 이 다음에 settings 파이썬 파일에 들어가서 설정을 적용해준다. 아 아니다 (..)
원래 흐름 상은 그게 좋다고는 하는데 안잊어버리고 하기만 하면 되지 않을까...
그 다음에는 $cd sample
을 이용해 sample 폴더 안으로 나의 위치를 이동시킨 후 app을 만든다!
APP 만들기
$ django-admin startapp sample_app
주의
나는 생각없이 app이름을 저렇게 지었는데 원래 app의 이름은 복수로 해주는 것이 원칙이다!
왜 그런지는 model을 만들면서 감이 조금 올 것이지만 나도 정확한 이유는 모른다. 모듈이 여러개 모인 것이라서 그런걸까..?
짜잔 애플리케이션이 완성되었다. 이제 settings에 들어가서 바꿔줄 아이들을 바꿔보자
settings.py 설정
잠시 후에 templates를 만들 때에도 만져줘야 겠지만 일단은 app을 추가해줘야한다.
settings.py의 28번째 줄 즈음으로 가보자
ALLOWED HOST는 실제로 어떤 호스팅을 이용할 것인지에 대한 내용이라서 나중에 실제로 웹사이트 배포 시에 다시 정리를 해줘야겠지만, 우리는 디버깅과 중간과정 확인을 로컬에서 계속해서 할 예정이기 때문에 *
를 넣어준다.
그리고 INSTALLED_APPS에 방금 만든 app의 이름을 넣어준다.저 위의 것들은 나중에 우리가 model이나 view, templates를 쓸 때 요긴하게 쓰이는 기능이다!
또한, 나는 한국에 사는 한국인이니까 언어와 시간대도 바꿔본다!
위의 스크린샷과 같이 LANGUAGE_CODE는 'ko-KR'
로, TIME_ZONE은 'Asia/Seoul'
로 바꿔준다.
자, 이렇게 하면 (사실 HOST만 ALLOW) 해주면 일단 장고 서버를 틀 수는 있다!
장고 서버를 트는 방법은 (본인의 현위치를 확인해야한다. 프로젝트 안이어야 한다. manage.py 가 있는 곳)
$ python manage.py runserver ****
혹시 서버를 지정해주고 싶으면 ****
부분에 숫자를 넣어주면 되고 아니라면 그냥 runserver에서 끝내주면 된다. 그렇게 되면 로컬 기준 8000에서 서버가 열린다!!
짜잔, 장고를 켰어요 축하합니다!
자 이러면 이제 앱으로 들어가서 기능을 추가해주고 그걸 보여줄 templates과 urls.py등을 만들어야 하는데
'웹 프로그래밍 > Django' 카테고리의 다른 글
[내가 막 하는 장고 구현] 2. 조회수 (0) | 2020.04.26 |
---|---|
[내가 막 하는 장고 구현] 1. 프로필 넣기 (1) | 2020.04.26 |
댓글