장고를 가상환경(Virtual environment)으로 설치
I. 가상환경 virtualenv를 구성
1. 장고 가상환경을 만들 디렉토리 생성,
>C:\Users\사용자명\ 아래에 DjangoVirtu 디렉토리 생성
2. 콘솔 창을 열고, C:\Python37\python -m venv myvenv를 실행
>C:\Users\사용자명\DjangoVirtu> C:\Python37\python -m venv mydjango
여기서 C:\Users\사용자명\DjangoVirtu는 가상환경을 만들려는 디렉토리,
C:\Python37\python은 파이썬이 설치된 디렉토리,
mydjango는virtualenv의 이름, 알파벳 소문자를 사용
실행 후 C:\Users\사용자명\DjangoVirtu\mydjango가 만들어졌으면 정상
3. 가상환경을 사용하기
>C:\Users\사용자명\DjangoVirtu>mydjango\Scripts\activate
CMD 창이 가상환경으로 바뀌면서 아래와 같은 프롬프트로 돌변되면 정상
- (mydjango) C:\Users\사용자명\DjangoVirtu>
4. 마지막으로 가상환경위에 django를 설치
- (mydjango) C:\Users\사용자명\DjangoVirtu>pip install django
....
Successfuly installed .....가 나오면 제대로 설치되었다
II. 장고 Django 프로젝트 시작
1. 모든 작업은 가상환경(virtualenv)에서 행동함
(myvenv) C:\Users\사용자명\DjangoVirtu>django-admin startproject myapp .
- 점 .은 현재 디렉토리에 장고 설치라고 스크립트에 알려주는 중요
(주의!) 예전 명령어 django-admin.py startproject myapp . 를 입력하면, "is deprecated in favor of django-admin. RemovedInDjango40Warning, " 구글링으로 커맨드가 바뀌었음을 확인 |
DjangoVirtu 디렉토리 아래 myapp 디렉토리 생성이 되었으면 성공
2. myapp/settings.py 내용 변경 (코드 에디터로 파일 연다)
2-1)Time Zone 수정
위키피디아 타임존 리스트에 가서 'Asia/Seoul'을 찾아 복사
Settings.py에서 TIME_ZONE을 찾아 해당 시간대로 변경, 에디터로 mysite/settings.py 열고
- TIME_ZONE = 'Asia/Seoul'
2-2)다음으로 정적파일 경로추가
- STATIC_URL = '/static/ 아래에 아래 ROOT 추가
- STATIC_ROOT = os.path.join(BASE_DIR, 'static')
DEBUG가 True, ALLOWED_HOSTS가 비어 있으면, 호스트는 ['localhost', '127.0.0.1', '[::1]']에 대해 유효.
2-3) 앱을 배포할 때 PythonAnywhere의 호스트 이름과 일치하지 않으므로 아래와 같이 변경
- ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']
(주의!) 크롬북 사용자는, settings.py 마지막 줄에 아래 코드 추가. MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' |
III. 데이터베이스 설정하기
1. DB 확인 - 이미 myapp/settings.py파일 안에 sqlite3이 설치됨
- DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
2. 데이터베이스를 생성하기 위해서 콘솔에서 아래 코드 실행
(I-3의 가상환경 콘솔 Activate)
- (myvenv) C:\Users\사용자명\DjangoVirtu>python manage.py migrate
(이 명령을 실행하기 위해서는 djangogirls디렉터리 안에 있는 manage.py가 필요)
그러나, 보기 좋게 에러 메시지 우수수 쏟아진다..
오류 메시지 들 Traceback (most recent call last): File "C:\Users\...\DjangoVirtu\manage.py", line 22, in <module> main() .... File "<frozen importlib._bootstrap>", line 1030, in _gcd_import .... \Django\DjangoVirtu\myapp\settings.py", line 124, in <module> STATIC_ROOT = os.path.join(BASE_DIR, 'static') NameError: name 'os' is not defined 그러나, 구글링으로 간단히 솔루션을 알아냈다 myapp/settings.py파일안에 아래 os 수입? 줄 추가로 해결 - import os |
정상수행시 메시지
(mydjango) C:\Users\...\DjangoVirtu>python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK .... Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK |
3. 이제 웹 서버를 시작해 웹 사이트 동작을 확인
프로젝트 디렉토리에 manage.py파일 존재 확인,
콘솔에서는 python manage.py runserver명령으로 웹 서버를 바로 시작
(myvenv) C:\Users\사용자명\DjangoVirtu>python manage.py runserver
- 정상 수행시 메시지
Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). May 15, 2021 - 09:29:37 Django version 3.2.2, using settings 'myapp.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK. |
- 크롬북은 (myvenv) ~/djangogirls$ python manage.py runserver 0.0.0.0:8000
- 윈도우에서 UnicodeDecodeError오류가 난다면,
(myvenv) ~/djangogirls$ python manage.py runserver 0:8000
윈도우즈에서 UnicodeDecodeError: 'utf-8' codec 오류가 발생할 수 있다.
Traceback (most recent call last): File "C:\Users\...\Python37\lib\threading.py", line 926, in _bootstrap_inner self.run() ... UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte |
PC내 호스트명이 한글이어서 발생한다. 염문으로 바꾼다
콘솔에서 호스트 네임 보는 cmd >hostname 또는 systeminfo host name을 변경하는 방법은 cmd로도 가능하나, 제어판에서 다시 한번 확인하고 변경한다 (시스템 재시작 필요) - 제어판 > 시스템 및 보안 > 시스템 > 설정정보 > 변경 화면에서 컴퓨터이름을 영문으로 임으로 바꾼다 |
4. 브라우저(IE, Chrome등)열고, 주소 입력
- http://127.0.0.1:8000/
- 정상수행시 브라우저
![]() |
여기까지 성공하면 자축 파티, 니에게 진한 풀바디의 '어글라스오브와인'을 트리트 !!
다음부터는 이 가상 웹서버위에 앱을 하나 하나 올려본다.
그 첫번째로 '메모장 - 게시판'을 올려본다
파이썬 보아뱀 나홀로 잡기 - Django 메모 프로젝트 생성
Django 는 다양한 Database를 지원, 설정 변경없이 default로 사용가능한 Sqlite 를 이용한 메모장을 만들어 본다 IV. 게시판 프로젝트 생성 1) cmd 창을 열고 앞 스토리에서 설명한 장고 가상환경을 activat
imaking.tistory.com
'파이썬' 카테고리의 다른 글
파이썬 보아뱀 나홀로 사냥 6 - 윈도우즈에 Open SSL 설치 (1) | 2021.05.22 |
---|---|
파이썬 보아뱀 나홀로 사냥 5 - HTTPS/SSL 인증서 발급/동작 절차 (0) | 2021.05.21 |
파이썬 보아뱀 나홀로 사냥 4 - REST API 구현 (0) | 2021.05.19 |
파이썬 보아뱀 나홀로 사냥 3 - Django 앱 개발 (메모 게시판) (0) | 2021.05.16 |
파이썬 보아뱀 나홀로 사냥 1 - Django 윈도우즈 설치 (0) | 2021.05.11 |