웹프레임워크란?
쿠키, 세션처리, 로그인/로그아웃 처리, 권한처리, 데이터베이스 처리등 웹프로그램을 위해 만들어야할 기능이 많다. 웹프레임 워크는 이러한 기능을 하나하나 만들필요 없이 웹프레임 워크에 있는 기능을 가져다 사용할수 있다. 쉽게말해 웹 프레임 워크는 웹 프로그램을 만들기 위한 스타터 키트다.
장고는 SQL 인젝션, XSS(cross-site scripting), CSRF(cross-site request forgery), 클릭재킹(clickjacking)과 같은 보안 공격을 기본으로 막아 준다. 즉, 장고를 사용하면 이런 보안 공격에 대한 코드를 직접 짤 필요가 없다.
- SQL 인젝션은 악의적인 SQL을 주입하여 공격하는 방법이다.
- XSS는 자바스크립트를 삽입해 공격하는 방법이다.
- CSRF는 위조된 요청을 보내는 공격 방법이다.
- 클릭재킹은 사용자의 의도하지 않은 클릭을 유도하는 공격 방법이다.
장고에는 필요로 하는 웹 프로그램 개발을 위한 도구와 기능이 대부분 준비되어 있다. 이미 기능이 준비되어 있기 때문에 새로 기능을 만들 필요가 없다.
기본적으로 파이썬은 필수적으로 설치되어 있어야 시작할 수 있다.
프로젝트를 위한 폴더를 생성해야 한다.
직접적으로 폴더를 생성하거나 터미널에서 mkdir 명령어를 통해 폴더를 생성하는 방법도 있다.
위 명령어를 통해 장고를 설치할 수 있다.
해당 명령어를 입력해준다.
위의 명령어는 현재 디렉토리를 프로젝트 디렉토리로 만들어준다.
명령어를 실행시키고 나면 프로젝트 폴더에 위의 파일들이 생성이 된다.
manage.py같은 경우 장고 프로젝트를 사용할 때 사용되는 파일로 삭제하지 않도록 유의해야한다.
manage.py를 실행하여 site를 실행할 수 있다.
주소창에 http://127.0.0.1:8000/을 입력하면 다음과 같은 페이지가 열린다.
http://127.0.0.1:8000/ 대신 http://localhost:8000/ 라고 입력해도 동일한 결과를 볼 수 있다.
Django 프로젝트가 처음 생성되면,
기본적으로 한번 장고의 데이터베이스를 마이그레이션 해준다.
migrate를 해주면 Sqlite3파일이 생성된다. 장고 프로젝트에 생성하는 데이터는 여기에 저장된다.
$ python manage.py migrate
migration
migrate 명령은 INSTALLED_APPS 의 설정을 탐색하여, config/settings.py 의 데이터베이스 설정과 app 과 함께 제공되는 database migrations에 따라, 필요한 데이터베이스 테이블을 생성한다.