Django
- Django : python으로 만들어진 오픈소스
웹 어플리케이션을 쉽게 작성할 수 있도록 도와주는 Framework
라이브러리(library) : 특수한 처리를 하기 위해서 만들어 놓은 함수 집합.
jQuery도 라이브러리라고 볼 수 있다.
장점 : 내가 모든 걸 다 작성할 필요가 없다.
단점(특징) : 전체 프로그램의 로직을 담당하지 않는다. (내가 로직을 짜고, 그 필요한
기능에 따라 라이브러리를 가져다 쓰는 것)
ex) jQuery를 이용해서 영화 정보 출력 문제를 구현할 때, 사람마다 구현이 제각각이다.
=> 유지보수가 힘들다.
프레임워크(Framework) : 프로그램의 전제적인 로직 부분(구조)이 이미 구현되어 있다.
프레임워크를 사용할 때는 기본적으로 사용되는 코드가 제공된다. (스케폴딩-scaffolding)
유지보수성이 좋아진다.
단, 처음에 프레임워크의 동작원리를 이해하는 작업이 필요하다.
- Django를 이용하면 Web Application에서 자주 구현해야 하는 내용을 쉽게 구현할 수 있다.
- Django의 특징
- 1. 장고는 MVC Model을 기반으로 한 MVT Model을 이용한다.
MVC Model : Model : 우리가 사용할 데이터의 형식을 보여주는 부분
View : 처리된 결과를 사용자에게 보여주는 부분
Controller : 사용자와 프로세서를 연결해주는 역할 (입력을 받아서, 입력을 처리할 수 있는 로직에게 연결, 결과를 View에게 전달
MVT Model : Model : 데이터베이스 처리
View : 로직을 담당 (MVC에서 controller 담당)
Template : 클라이언트에게 보여줄 화면을 담당
1. Django 설치
=> 도스 창에서 pip를 이용해서 Django를 설치.
pip(python install package)
PyPI(Python Package Index)라는 repository에 있는 Django를 설치.
pip install Django
2. Project Setup
=> 시작은 프로젝트의 뼈대를 만드는 일부터 시작.
폴더를 만든다. C:/python-Django
명령어를 입력해서 scaffolding을 한다.
mysite라는 폴더 이름을 => MyFirstWebPoll
C:/python-Django/MyFirstWebPoll/mysite
이제 프로젝트에 하나의 application을 추가한다.
C:/python-Django/MyFirstWebPoll > python manage.py startapp polls
==> 수행시키면 polls라는 application이 생성된다. 폴더가 생성되고, 필요한 파일들이 scaffolding 된다.
==> 여기서부터는 PyCharm을 이용해서 처리한다.
==> settings.my을 이용해서 프로젝트의 설정 처리를 한다.
==> Django의 특징 중 하나 >> 관리자모드를 기본으로 제공한다.
관리자에 대한 id, pw가 있어야 한다는 말이고, 이 id와 pw가 어딘가(DB)에 저장되어 있어야 한다.
따라서 Django는 기본적으로 데이터베이스가 설정이 된 상태로 사용되어야 한다.
==> 기본 테이블(기본 데이터베이스)을 생성해야 한다.
python manage.py migrate
==> 서버 기동을 해본다.
내장된 테스트 웹서버를 이용해서 프로젝트를 deploy 한다.
python magage.py runserver
http://localhost:8000
http://localhost:8000/admin > 관리자 화면
==> 관리자 ID와 PW를 생성해야 한다.
python manage.py createsuperuser
DEBUG = True # 만약 DEBUG가 True면 개발 모드
# 만약 DEBUG가 False면 운영모드
ALLOWED_HOSTS = [ ] # DEBUG = True여서 개발 모드면 ALLOWED_HOSTS를 비워놔도 된다.
# ['localhost', '127.0.0.1']
# DEBUG = False 여서 운영모드면
# ALLOWED_HOSTS에 실제 운영되는 서버의 IP주소나, Domain Name이 들어와야 한다.
INSTALLED_APPS = [ ] 에다가 'polls.apps.PollsConfig' => 폴더명.파일명.클래스이름 추가해주기
3. polls application 구현
- 1. Model생성부터 해야 한다.
Model 작업은 우리가 사용하는 Database에 Table을 생성하는 작업이다. (Table == Relation)
Database : 데이터의 집합체
DBMS (Database Management System) : 데이터베이스를 구축, 정보를 추출, 새로운 데이터를 입력,
기존 데이터를 삭제, 기존 데이터를 수정하는 작업을 진행(프로그램)
==> sqlite3라는 DBMS를 Django에서는 default로 사용.
데이터베이스는 언제부터 사용했을까.
초기 : 계층형 데이터베이스 (폴더별로 모아놓는 거)
중기 : 관계형 데이터베이스 Relational Database (DB2)
=> 성능도 좋고, 사용하기도 편하다.
현재 : 객체지향의 개념이 들어가서 객체 관계형 데이터베이스 탄생.
ORM (Object Relation Mapping) 방식. 데이터베이스를 클래스의 객체화시켜서 저장.
Django Model 생성하는 방법 정리.
1. 생성하고자 하는 폴더에서 scaffolding진행
C:/python-Django > django-admin startproject mysite
이번에는 혼동을 막기 위해 폴더명을 MyFirstWebPoll로 변경.
2. polls라는 애플리케이션을 생성하는 명령어 입력
C:/python-Django/MyFirstWebPoll> python manage.py startapp polls
3. settings.py에서 설정값 조절 (개발 모드나 운영모드, 프로젝트에 포함되는 app, 시간 등)
4. 프로젝트 deploy
C:/python-Django/MyFirstWebPoll> python manage.py runserver
5. 관리자 계정 생성
C:/python-Django/MyFirstWebPoll> python manage.py createsuperuser
6. 모델 생성, admin site에 등록
models.py 파일 수정, admin.py 파일에 admin.site.register(Question)으로 등록
7. Database 변경사항 반영
C:/python-Django/MyFirstWebPoll> python manage.py makemigrations
C:/python-Django/MyFirstWebPoll> python manage.py migrate
'교육 > web' 카테고리의 다른 글
| 2020.07.31 ~ 2020.08.03 Django project (0) | 2020.08.03 |
|---|---|
| 2020.07.28~2020.07.29 Web 예제 (0) | 2020.07.28 |
| 2020.07.24 AJAX (0) | 2020.07.28 |
| 2020.07.23 Web(HTML, CSS, jQuery) (0) | 2020.07.23 |
| 2020.07.22 Web Service (0) | 2020.07.22 |
댓글