Django 앱 만들기
시작하기 전에
- 프로젝트 vs. 앱
- 프로젝트는 다양한 앱을 포함 - 앱은 웹 어플리케이션의 기능 (e.g., 웹 블로그시스템,공공 기록의 데이터베이스 또는 간단한 투표 앱)
virtualenv: 개발환경에서 독립된 개발환경을 제공해주는 프로그램
``` # 패키지 설치 $ sudo pip install virtualenv # 프로젝트 생성 $ virtualenv venv_projat New python executable in /mr.sense/venv/venv_projat/bin/python Installing setuptools, pip, wheel...done. # 가상환경 실행 $ source ./venv_projat/bin/activate # 가상환경 에서 사용하는 python moduel 확인 $ pip list Django (1.11.3) pip (9.0.1) pytz (2017.2) setuptools (36.2.5) wheel (0.29.0) # 가상환경 종료 $ deactivate ```
- 프로젝트 vs. 앱
Django 의 구조
- MVT 모델
- [좋은 참고자료](http://heiswed.tistory.com/category/SW%20%EA%B0%9C%EB%B0%9C/Django) - 모델 Model: - DB 구조를 설정하는 컴포넌트, ORM 방식을 사용하여 SQL 문을 직접 사용하지 않고 파이썬 객체로 접근 - 하나의 class 가 하나의 table 을 의미한다 - 뷰 View: (== MVC 모델의 Controller) - 데이터를 입력받거나 표시하는 컴포넌트 - 템플릿 Templates: (== MVC 모델의 View) - 사용자의 입력과 이벤트에 반응하여 Model 과 View 를 업데이트 - 디자인 영역의 분리 및 재사용서을 높이기 위해 HTML 구조만 따로 모아놓은 것 - {{변수}}, {{% 태그 %}}
- MVT 모델
Django 프로젝트
생성
``` # django-admin.py {{실행 파라미터}} {{프로젝트명}} $ django-admin.py startproject djangoproject ``` > django-admim 스크립트의 이름은 배포 패키지에 따라 다를 수 있음
``` djangoproject/ ㄴ manage.py # 초기화, 마이그레이션, 실행 등을 수행하는 파일 ㄴ djangoproject/ ㄴ __init__.py ㄴ settings.py # 웹사이트 설정이 있는 파일 - ALLOWED_HOSTS: 접근 가능 호스트 정리 - DATABASES: 사용할 DB 정보 - ENGINE: 'django.db.backends.sqlite3' 'django.db.backends.postgresql_psycopg2' 'django.db.backends.mysql' 'django.db.backends.oracle' - INSTALLED_APPS: - django.contrib.auth – 인증시스템 - django.contrib.contenttypes – 컨텐츠타입 프레임워크. - django.contrib.sessions – 세션프레임워크 - django.contrib.sites – 한번의 Django설치로 여러 사이트 관리를 위한 프레임워크. - django.contrib.messages – 메시징 프레임워크 - django.contrib.staticfiles – 정적파일을 관리하기 위한 프레임워크. - **신규 생성할 앱을 프로젝트에 추가한다.** ㄴ urls.py # urlresolver 가 사용하는 패턴 목록을 포함 ㄴ wsgi.py # wsgi 호환 서버에서 서비스를 하기 위한 진입점 ```
Django 앱
- 생성
$ python manage.py startapp django1stapp - 프로젝트와의 연결
- 프로젝트 하위 settings.py 의 INSTALLED_APPS 에 추가한다
- 생성
실행
$ python manage.py makemigrations
model 의 변화 사항을 migration 폴더에 python 파일로 저장함.
위에서는 ./migrations/ 폴더내에 0001_initial.py 파일이 새로 생김
아직 database 에 model table 생성된것은 아님$ python manage.py migrate
db table 생성
$ python manage.py runserver ip:port
django project run
'개발 > python' 카테고리의 다른 글
Python multiprocess vs multithread (0) | 2018.05.24 |
---|---|
django mysql rest api project (0) | 2018.03.11 |
Django 프로젝트에서 batch job 돌리기 (0) | 2018.01.23 |
Django 프로젝트 (0) | 2017.11.29 |
Python Django WEB project 개발하기1 (0) | 2016.08.17 |