1. 참고 페이지
- web site 초기 구축 방법
- MS SQL 설정 방법
- import/export 방법
2. 필요 프로그램 설치
2.1. Python
- Python 홈페이지에서 최신 Python Interpreter 설치
- 설치 시, Python Path 추가하는 체크박스 반드시 체크!!!
- Windows PowerShell 에서 'python' 입력 시에 아래와 같이 나와야 정상 설치된 것임
2.2. Django
- Python 설치 후에 진행 가능함
- Windows PowerShell 실행하고 아래 코드 실행
pip install django
2.3. Sublime Text
- 폴더 단위로 파일을 열어서 편집할 수 있는 프로그램
- Python 코드 스타일 바로 인식하여 적용됨
- https://www.sublimetext.com/
3. Web site 설치 및 실행
3.1. 설치
- Windows PowerShell 실행
- 사이트 코드를 관리할 폴더를 생성하여 이동
- 아래의 코드 실행
django-admin startproject $site_name
- $site_name: 생성할 사이트의 이름을 입력
- $site_name 에 입력한 값으로 폴더가 생성되고 그 구조는 아래와 같음
3.2. 실행
- Windows PowerShell 에서 'manage.py' 파일이 존재하는 폴더 경로로 이동
- 아래의 코드 실행
python manage.py runserver
- 아래와 같이 실행됨으로 확인
- chrome 에서 'localhost:8000' 으로 접근 시 아래와 같이 페이지 출력됨을 확인
- chrome 에서 'localhost:8000/admin' 으로 접근 시 아래와 같이 페이지 출력됨을 확인
4. MS SQL 연결
- Windows PowerShell 에서 아래 코드를 통해 드라이버 설치
pip install django-pyodbc-azure
- setting.py 에서 아래와 같이 설정
DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } 'default': { 'ENGINE': 'sql_server.pyodbc', 'NAME': 'DB명', 'USER': '사용자', 'PASSWORD': '패스워드', 'HOST': '호스트명', 'PORT': '1433', 'OPTIONS': { 'driver' : 'SQL Server Native Client 11.0', 'MARS_Connection' : True, 'driver_supports_utf8' : True, }, } }
5. App 관리
5.1. App 추가
- Windows Powershell 에서 추가하고자 하는 App 을 추가하는 코드 실행
- App 이란 기존의 어플리케이션을 뜻하는 것이 아니라 해당 웹페이지에서 개별적으로 접근 가능한 페이지라고 이해하는 것이 맞다고 봄
python manage.py startapp $appName
- 위와 같이 코드를 실행하면 manage.py 파일이 포함되어 있는 폴더와 같은 레벨에 $appName 에 해당하는 폴더가 생성되고 해당 폴더 안에 기본 py 파일들(__init__, admin, apps, models, tests, urls, views)이 생성됨
5.2. Model 설정
- app 폴더 내부의 models.py 파일을 수정해야 함
- 각 테이블을 하나의 class 로 구현
- class 내부에 테이블의 컬럼에 해당하는 변수를 선언
- 생성한 class 의 내부에 Meta class 를 생성하여 table 의 이름 및 표출 정보를 구현
- __str__ 함수를 이용하여 record 를 출력할 때, 표기할 형식을 결정
- Model 샘플 코드
class Subsystem(models.Model): acronym = models.CharField(unique=True, max_length=16) sysname = models.CharField(max_length=32) description = models.CharField(max_length=256) remarks = models.CharField(max_length=256, blank=True, null=True) class Meta: db_table = 'subsystem' verbose_name = '서브시스템' verbose_name_plural = '서브시스템 목록' def __str__(self): return f'{self.acronym}-{self.sysname}'
5.2.1. DB 적용
- Windows Powershell 에서 Migration 파일을 생성하는 코드 실행 ($appName 을 생략하면 모든 app 을 대상으로 수행됨)
python manage.py makemigrations $appName
- 위의 코드를 실생하면 app 폴더 내부에 migrations 라는 폴더가 생성되고 그 안에 DB 에 업데이트를 수행할 정보가 기록된 파일이 생성됨
- Windows PowerShell 에서 실제 migration 을 수행하는 코드 실행 ($appName 을 생략하면 모든 app 을 대상으로 수행됨)
python manage.py migrate $appName
- 위의 코드를 실행하면 DB 에 실제 테이블이 생성됨
- 위의 코드를 실행하기 전에는 DB 에 변화가 생기지 않음
- 기타 관련 명령어
# 마이그레이션 파일 생성 python manage.py makemigrations $appName # 마이그레이션 적용 python manage.py migrate $appName # 마이그레이션 적용 현황 python manage.py showmigrations $appName # 지정 마이그레이션의 SQL 내역 python manage.py sqlmigrate $appName $migrationName
6. Admin 페이지 접속
- admin 사용자 만들기
- 프로젝트 폴더로 이동
- python manage.py createsuperuser 실행
- 유저 이름과 email, password 설정







