Django

Django 프로젝트 생성

nyanguk 2021. 1. 14. 11:42

사전 준비는 이전 포스트를 통해 진행하시면 됩니다.

시작

가상환경 접속

이전에 설명한 가상환경을 만들고 접속한뒤 프로젝트 생성을 해줍니다.
django-admin startproject 프로젝트이름 . 이때 . 온점을 프로젝트이름에 띄워서 찍어주세요(필수)

jaeuk@jaeuk-cat:~/JaeUk/Django$ python3 -m venv my
jaeuk@jaeuk-cat:~/JaeUk/Django$ source my/bin/activate
(my) jaeuk@jaeuk-cat:~/JaeUk/Django$ django-admin startproject mysite .

복붙 쉽게
python3 -m venv my
source my/bin/activate
django-admin startproject mysite .

생성된 파일 확인

Django 
├───manage.py 
└───mysite 
        settings.py 
        urls.py 
        wsgi.py 
        __init__.py

프로젝트를 생성하고나면 다음과 같은구조로 디렉토리가 생성된다.

manage.py는 사이트 관리를 도와주는 스크립트 파일

settings.py는 웹사이트 설정이 있는 파일

urls.pyurlresolver가 사용하는 패턴 목록파일

설정 변경(시간)

웹사이트의 현재 시간을 내가 살고있는 한국/서울시간으로 바꾸기 위한 기초 작업이며
mysite/settings.py 에서 TIME_ZONE을 찾고 'Asia/Seoul'로 변경하면된다.
만약 다른곳에의 시간을 참조 하려면 위키피디아 타임존 리스트에서 찾아본다.

 TIME_ZONE = 'Asia/Seoul'

설정 변경(정적 파일경로)

CSS와 함께 다루게 될 정적파일의 경로를 추가하기위한 작업이며
mysite/settings.py 파일의 끝에서 STATIC_URL을 찾고 그 밑에 STATIC_ROOT을 추가한다.

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

설정 변경(호스트)

ALLOWED_HOSTS = ['127.0.0.1', '.pythonanywhere.com']

데이터 베이스 설정

데이터 베이스 설정을 위해 manage.py 파일이 들어있는 디렉토리로 진입한 뒤 python manage.py migrate 를 실행한다.
내 기준으로 Django 디렉토리안에서 실행하면 된다.

프로젝트 시작시 디폴트로 사용하게되는 sqlite3를 사용한다.

(my) jaeuk@jaeuk-cat:~/JaeUk/Django$ 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 admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK

다음과 같은 오류가 발생한다면 다른 파이썬 가상환경에 장고가 깔려있지 않을 수 있으므로 장고를 설치한다.

File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
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?
from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'
ModuleNotFoundError: No module named 'django'

주로 새로운 프로젝트나 가상환경을 만들었을때 생기는 오류인 것 같다.
즉, 새롭게 프로젝트를 생성했다면 가상환경을 만들고 다시 장고를 설치해야한다.

python -m pip install django~=2.1.0

정상적으로 동작했다면 다음 명령어를 통해 웹서버를 실행한다.

(my) jaeuk@jaeuk-cat:~/JaeUk/Django$ python manage.py runserver

그 다음 크롬을 켜서 http://127.0.0.1:8000/을 넣어 서버가 동작하는지 확인한다.

끝.

참조 사이트

https://tutorial.djangogirls.org/ko/