본문 바로가기

파이썬

파이썬 보아뱀 나홀로 사냥 2 - 윈도우즈 가상 환경 Django 부터 DB설치 까지

반응형

장고를 가상환경(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은  파이썬이 설치된 디렉토리,  

mydjangovirtualenv의 이름, 알파벳 소문자를 사용

 

실행 후 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 장고 웹서버 구축 성공 축하 브라우저 !

 

여기까지 성공하면 자축 파티, 니에게 진한 풀바디의  '어글라스오브와인'을 트리트 !! 

와인

 

 

다음부터는 이 가상 웹서버위에 앱을 하나 하나 올려본다. 

그 첫번째로 '메모장 - 게시판'을 올려본다

https://imaking.tistory.com/7

 

파이썬 보아뱀 나홀로 잡기 - Django 메모 프로젝트 생성

Django 는 다양한 Database를 지원, 설정 변경없이 default로 사용가능한 Sqlite 를  이용한 메모장을 만들어 본다 IV. 게시판 프로젝트 생성 1) cmd 창을 열고 앞 스토리에서 설명한 장고 가상환경을 activat

imaking.tistory.com

 

반응형