프로젝트 시작 전 장고란?
-
Django
파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework). 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크
-
특징
- 비교적 쉬운 언어인 Python을 기반으로 두기 때문에 익히기 쉽고 개발속도도 빠르고, 코드 완성도를 높게 유지할 수 있으며 확장성도 좋다.
- 웹 애플리케이션이 제공되어야하는 사용자 인증, 사용자 관리 등을 기본적으로 기능 구현이 되어 있다.
- MVC 패턴 기반의 MVT
model : 데이터를 의미하며 ORM 방식을 사용. SQL구분을 직접 사용하지 않고 파이썬 객체로 접근
view : 테이터 입력을 받거나 표시하는 텀포넌트
template : 사용자에게 보여지는 view에 해당
- ORM 기능 지원
Object-relational mapping으로 파이썬과 데이터베이스의 SQL 통역사 역할이다. 테이블을 객체와 연결해서 쿼리를 사용하지 않고도 CRUD 할 수 있다.
CRUD와 조회 조건 : https://dev-yakuza.github.io/ko/django/orm/ (참고할 좋은 링크)
- 동작원리
URL주소 입력 (사용자의 요청) -> View는 받은 요청을 확인하고 Model에 지시를 내림 -> View는 Template에 전달하며 화면과 함께 사용자에게 전달함
프로젝트 만들기
- 프로젝트 생성
처음 장고 프로젝트 만들어보는거라 이 곳 저곳 프로젝트들을 많이 따라하면서 진행하였다.
대표적으로 이고잉 선생님의 생활코딩에서 부트스트랩을 이용하여 블로그 만들기와
(링크 : https://www.opentutorials.org/module/4034/24644)
장고공식문서에서 투표앱 만드는 것을 목표로 진행하였다.
(링크 : https://docs.djangoproject.com/en/3.0/intro/tutorial01/)
환경을 pyCharm을 사용했고 생성시 가상환경도 같이 설정하여 프로젝트를 만들어준다.
가상환경을 따로 설정해주는 이유는 이 프로젝트의 독립된 환경이 필요해서인데 파이썬의 라이브러리들이 충돌을 일으키는 곳을 방지하기 위함이다.
설정하고 나면 이런 프로젝트 구조를 가질 수 있다.
- 앱생성
Tool - run managy.py task로 들어가서 startapp polls 라는 명령어로 앱을 만든다. 그냥 터미널에서 python manage.py startapp polls 도 똑같은 소리이다. 앱 생성 후에는 setting.py에서 INSTALLED_APPS항목에 추가해줘야한다.
polls라는 앱과 blogapp이라는 앱을 추가한 내용이다.
- 프로젝트 구조
- firststudy라는 프로젝트안에 firstproject는 전체 프로젝트의 설정들을 관리하는 역할을 하며 blogapp과 polls앱으로 구성되어 있음
- init.py 는 빈 파일. 이 파일은 Python에 함. 이 곳에는 우리가 만드는 어떤 application이라도 등록이 되는 곳이며, static files의 위치, database 세부 설정 등
- urls.py 는 사이트의 url - view의 연결을 지정해줍니다. 여기에는 모든 url 매핑 코드가 포함될 수 있지만, 특정한 어플리케이션에 매핑의 일부를 할당해주는 것이 일반적
- wsgi.py 는 당신의 장고 어플리케이션이 웹서버와 연결 및 소통하는 것을 돕습니다. 당신은 이것을 표준 형식(boilerplate)으로 다뤄도 무방함
- manage.py 는 어플리케이션을 생성하고, 데이터베이스와 작업하고, 그리고 개발 웹 서버를 시작하기 위해 사용됨
- 앱 실행
run manage.py task 명령창에 runserver를 치거나 파이참 내부 실행 버튼으로 실행한다면 장고 서버가 성공적으로 실행 된다.