안녕하십니까?
저는 해커톤을 앞두고 발등에 불이 떨어진 여자 1호(a.k.a내 머리속의 지우개) 입니다^^,,
한때 그렇게 장고를 달고 살았으면서 이렇게 될 수 있냐구요?
네. 그렇더라구요ㅎ
무튼~ 해커톤 전에 장고 한 번 쓰윽 훑으면서 겸사겸사 정리하려고 쓰는 글!
시작해보겠다 빠이팅🔥
모든 환경은 Mac 기준이다 😋
1. 가상환경 만들기
➡️ python3 -m venv [이름]
2. 가상환경 실행
➡️ source [이름]/bin/activate
3. django 설치
➡️ pip3 install django
4. 프로젝트 생성
➡️ django-admin startproject [이름]
5. django가 사용할 데이터베이스 만들기
➡️ python3 manage.py migrate
➡️ 이렇게 하면 sqlite3
파일이 생성됨
6. 앱 생성
➡️ python3 manage.py startapp [이름]
앱을 생성하고 나면, 프로젝트에서 사용할 수 있도록 등록을 해줘야 한다.
최상위 settings.py
의 INSTALLED_APPS
맨 아래에 앱 이름을 추가하자!
📌 migration
➡️python3 manage.py makemigrations [앱이름]
➡️python3 manage.py migrate
7. 프로젝트 실행
➡️ python manage.py runserver
웹 프로그램 개발 시 일반적으로 언급되는 패턴은 MVC(model - view - controller) 패턴이다.
➡️ 장고에서는 MTV(model-template-view) 패턴으로 바꿔서 정의
models.py
)templates/*.html
)views.py
)url
)로 요청을 보냄(GET
사용)url conf
모듈을 이용하여 요청의 url
을 확인(무슨 쿼리 파라미터가 있는지, 무슨 path가 있는지)urls.py
를 보고 정의된 내용에 따라)html
코드를 생성(render
라는 메소드에서 일어남)html
코드를 클라이언트로 보냄html
코드를 렌더링모델이란❓ 우리가 만들 웹 서비스에서 사용할 정보의 내용, 특성을 기술하거나 정의한 것
➡️ 웹 사이트를 만들 때 어떠한 정보들을 저장하기 위해 사용
➡️ 보통은 사이트의 게시물, 댓글, 회원 정보들도 모델의 범주에 속하는데 이러한 정보를 시스템에서 처리하고 저장하기 위해 모델링이라는 과정을 거쳐야 함
맛집 사이트를 개발한다고 가정했을 때 모델링 하는 과정
1️⃣ 취급할 정보의 대략적인 종류를 결정.
결정된 종류 각각이 모델 클래스가 됨!(맛집, 평가, 회원, 등)
2️⃣ 각 취급할 정보의 속성을 정리.
ex) 맛집(주소, 위치, 명칭, 전화번호, 사진 등), 평가(별점, 글쓴 시각, 글쓴 회원 등), 회원(이메일, 닉네임, 등)
3️⃣ 각 속성의 자료형을 결정.
맛집(주소(문자열), 위치(위경도-부동소수점형), 명칭(문자열), 등)
4️⃣ Relation 관계 정의
relation이 어떤 모델을 가리키는지 구조를 만듦
📌 모델 클래스 (= 파이썬 클래스)
- 어떤 형태의 정보가 다뤄지고 저장될 지를 정의
- 우리가 만들 장고 웹 앱 내에서 코드로 구현되고, 웹 앱이 구동되면서 실제 데이터베이스와 연동됨
폼이란❓
➡️ 사용자 웹 인터페이스를 구성하는 것 중에서 Form은 사용자의 입력을 받기 위한 필드나 위젯들의 묶음을 의미함
➡️ 우리가 자주 보는 로그인 화면이나, 글쓰기 화면 등에 데이터를 입력 받는 입력 칸들과 버튼으로 이루어져 있음
<form action=”데이터가 전달될 주소(요청/이동할 주소)” method=”http 요청 방식">
<input type=”text” name=”title”/>
<button type=”submit”>입력</button>
</form>
✔️ html form 기본적인 형태
Action
: 여기서 입력되는 정보들을 받는 urlMethod
: HTTP 요청 방식에는 GET / POST / PUT / DELETE
가 있음GET / POST
를 사용하는데 GET
는 주소가 노출되어도 괜찮고, 다른 사용자에게 공유가 가능한 정보를 처리할 때 사용되고, POST
는 회원가입이나 결제와 같이 다른 사용자와 결제 해서는 안되는 정보를 처리할 때 사용됨장고에서는 이러한 폼을 구성하기 쉽도록 프레임워크 단에서 지원하고 있음!
binding
)Validation
체크 (입력된 정보들의 유효성 검사)를 쉽게 해줌sanitisation
)장고 : 안녕 모태 ㅋ