Django란?
파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크(web application framework).
웹 서버에 request를 보내면 일어나는 일
웹 서버에 request가 옴 -> django로 전달 -> django urlresolver는 웹 페이지의 주소를 가져와 무엇을 할지 확인
-> urlresolver는 패턴 목록을 가져와 URL과 맞는지 대조하고 일치하는 패턴이 있으면 해당 요청을 관련된 view에 넘겨줌 -> view 함수에서는 request 받은 내용을 확인해서 권한 확인 후 데이터를 바꾸거나, 추가 -> view는 '답장'을 다시 사용자의 웹 브라우저에 보냄
가상환경(Virtual environment)
가상환경(Virtual environment, virtualenv)는 프로젝트 기초 전부를 python/django와 분리해줌. 즉 자신이 원하는 python, django 환경을 구축하기 위해 필요한 모듈만 담아 놓는 바구니라고 생각하면 됨. 아래 사진 상단의 python virtual envs처럼 각 가상환경(virtualenv 1, 2, 3..)은 독립적으로 관리됨. 다시 정리하면 가상환경을 사용하는 이유는, 같은 모듈을 사용한다고 하더라도 다른 버전을 필요로 한다거나, python 프로그램을 실행하기 위한 최소한의 환경을 마련하고자 할 때나, GitHub등의 저장소나 네트워크와 연계하고자 할 때 등으로 매우 다양.
myenv라는 이름의 가상환경 생성하기 & Django 설치하기
(OS: Linux)
//make directory named djangogirls
$mkdir djangogirls
$cd djangogirls
//make virtualenv named myenv
$python3 -m venv myvenv
//activate virtualenv -> if successed, there will be a prefix, (myvenv)
$source myvenv/bin/activate
//check pip version
(myvenv) ~$python3 -m pip install --upgrade pip
//install django
(myvenv) ~$pip install django~=2.0.0
Virtualenv 실행
$source myvenv/bin/activate
Django 프로젝트 시작하기
//'.' means "install django in the current directory"
//django-admin.py is script, creating directories and files
(myvenv) ~/djangogirls$ django-admin startproejct mysite .
//result
djangogirls
├───manage.py //script, manage site, can start web server
└───mysite
settings.py //includes website setting
urls.py //include patterns which urlresolver use
wsgi.py
__init__.py
Setting 변경
//mysite/settings.py
//change current time
TIME_ZONE = 'Asia/Seoul'
//change language
LANGUAGE_CODE = 'ko'
//add path of static file
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
//when DEBUG = True && ALLOWED_HOSTS = []
//the host is validated against ['localhost', '127.0.0.1', '[::1]']
//this won't match our hostname on PythonAnywhere. So change..
ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
Database 설정
//sqlite3 database software, default one
//already in the file mysite/settings.py
DATABASES = {
...
}
//create database in blog
//don't forget to activate virtualenv
(myvenv) ~/djangogirls$ python manage.py migrate
Web Server 시작
//start web server
(myvenv) ~/djangogirls$python manage.py runserver
브라우저에서 http://127.0.0.1:8000/ 를 열어준다.
참고
https://medium.com/@psychet_learn/python-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-a87fc6e4d12b
https://tutorial.djangogirls.org/ko/installation/
'WEB' 카테고리의 다른 글
[Django/Blog] 관리자 설정 (0) | 2019.12.07 |
---|---|
[Django/Blog] Model 생성 (0) | 2019.12.07 |
[WEB] SEO (search engine optimization) 검색 엔진 최적화 (0) | 2019.11.17 |
[WEB] Semantic(의미론적인) Web (0) | 2019.11.16 |
[React] React와 Virtual DOM (0) | 2019.11.13 |