1 실습 폴더 이동(없으면 생성)
2 가상환경 모드로 진입 --> 프로젝트 생성
3 기본 테이블 생성(기본 앱들 설치 --> 슈퍼 관리자 아이디 생성을 위해서,
4 슈퍼유저 생성
5 서버 구동 후 관리자모드에 접속
6 App 생성 및 추가
py manage.py startapp info
생성 파일: models.py, views.py 등
app 안에 urls.py 파일을 별도로 생성해줘야함
최상위 루트 폴더에 존재하는 환경설정 파일
최상위 폴더 -> urls.py -> urlpattens -> app path 추가
path('info/', include('info.urls')),
path('admin/', admin.site.urls),
7 템플릿 폴더 사용
프로젝트 루트 폴데어 templates 폴더를 만들어서 사용 -> 프로젝트의 settings.py(root) -> info.apps.InfoConfig 템플릿 경로 추가하여 사용
생성한 앱(App)쪽 바로 하위에서 -> templates 폴더를 만들어서 사용(App별로 템플릿 사용이 가능) -> 템플릿 파일 생성(App이름/templates/템플라파일.html 생성)
8 데이터베이스 연동
장고(django)를 사용하기 위해서는 파이썬(python)을 설치해야한다. 아래에 링크를 통해 자신의 OS에 맞는 파이썬(python)를 다운로드 받은 후 설치합니다.
pip install virtualenv pylint autopep8
mkdir django-server
cd django-server
# 가상환경 생성
virtualenv venv
or
python -m venv myvenv
-------------------------------------
# 가상머신 활성화
source myvenv/Scripts/activate
# 장고 설치
pip install django
# 설치가 완료되었다면 아래에 명령어로 장고(django)가 잘 설치되었는지 확인
django-admin --version
# 설치된 개발 환경을 파일로 저장
pip freeze > requirements.txt
# 가상 환경(Virtual Environment) 종료
deactivate
# 장고(django) 프로젝트를 생성
django-admin startproject myadminpage
장고(django) 명령어로 프로젝트를 생성하면 아래와 같이 폴더가 생성되는 것을 확인할 수 있다.
|-- myadminpage
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- wsgi.py
|-- manage.py
Database가 잘 연동되었지 확인하기 위해 장고(django)가 기본으로 제공하는 관리화면에 필요한 기본 테이블을 아래에 명령어를 통해 생성한다.
dbshell모드로 들어가서 기본적으로 생성된 테이블을 확인할 수 있다
# 생성
py manage.py migrate
# sqlite 들어가기
py manage.py dbshell
# 기본 테이블 확인
.table
💡 dbshell 설치
SQLite 설치
dbshell이 실행이 되지 않는다면 위 링크에서 파일을 다운받아 압축을 해제한 이후 내부에 있는 sqlite3.exe 파일을 프로젝트의 루트 디렉터리에 복사해준다. 이후 명령을 실행하면 sqlite가 잘 실행되는 것을 확인 할 수 있다.
가상환경에서의 장고 서버를 켜려고 했는데, 어제까지만 해도 잘 동작하던 게 갑자기 아래와 같은 에러를 뱉어내며 실행되지 않았다.
ModuleNotFoundError: No module named 'django'
...
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
이후 가상머신에 들어가 pip list로 Django가 설치되어있는지 보고 설치되어있지 않으면 설치해준다.