ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. Django: start project
    Python/초간단 장고 Django 2019. 7. 6. 22:42
    반응형

    설치 후 ./venv/Scripts 폴더를 보면 이런 파일들이 생성되었음을 알 수 있습니다. 

    ./venv/Scripts

    여기서 장고 어드민이 필요합니다.

    참고로 파이참 없이 직접 실행하려면 먼저 activate.bat 로 가상환경을 실행한 뒤 장고 어드민을 실행합니다.

    1. 프로젝트 생성(start project)

    파이참의 터미널에서 다음 명령을 실행합니다. 마지막 점에 주의합니다. 

    (venv) C:\PyProjects\myapp>django-admin startproject config .
    

    'django-admin startproject 프로젝트명' 형식으로 실행해도 됩니다만.. 

    그럴 경우 파일 구조가 다음과 같이 'myapp\myapp\myapp'으로 아주 아스트랄하게 되어 버리기 때문에 위의 형식으로 실행하는 게 좋습니다. 

    (venv) C:\PyProjects\myapp>tree
    OS 볼륨에 대한 폴더 경로의 목록입니다.
    볼륨 일련 번호는 B457-0D6A입니다.
    C:.
    ├─.idea
    └─myapp
        └─myapp
    

    myapp 폴더의 파일. manage.py

    myapp\config 폴더의 파일들.

    2. 서버의 실행

    설치를 했으니 웹서버를 실행해 봐야죠?

    터미널로 실행해 봅니다. 

    (venv) C:\PyProjects\myapp>python manage.py runserver
    

    아래 메시지도 찬찬히 보시기 바랍니다. 

    Watching for file changes with StatReloader
    Performing system checks...
    
    System check identified no issues (0 silenced).
    
    You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.
    July 06, 2019 - 20:45:22
    Django version 2.2.3, using settings 'config.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    

    서버가 http://127.0.0.1:8000/ 에서 시작되었다고 합니다. 

    Starting development server at http://127.0.0.1:8000/

     

    웹브라우저로 접속해 보니 이쁜 화면이 보이네요.

    (반응형 웹디자인이군요.)

     

    페이지 타이틀이 재미있습니다.

    Django: The Web framework for perfectionists with deadlines

    마감이 임박한 완벽주의자를 위한 웹 프레임워크 ^^

     

    Quit the server with CTRL-BREAK.

    컨트롤-브레이크 또는 컨트롤-C 키를 눌러 서버를 종료합니다. 

     

    파이참을 이용해서 실행할 수도 있습니다. 

     

    파이참 우측 상단의 Add Configuration을 누릅니다. 
    우측 상단의 +키를 누른 뒤 파이썬을 선택합니다. 
    적당한 이름을 골라, 경로와 패러미터를 입력하세요. 
    실행 버튼이 활성화 되었습니다. ^^

    2. 첫 번째 마이그레이션

    위 메시지 중 아래 내용도 잊으면 안됩니다.

    17개의 적용되지 않은 마이그레이션이 있으니 'python manage.py migrate'로 마이그레이트하라.

    You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
    Run 'python manage.py migrate' to apply them.

    마이그레이션은 장고의 데이터베이스 구조의 변화를 데이터베이스에 적용하는 것을 말합니다. 

     

    장고는 클래스를 이용해서 데이터베이스를 사용합니다.
    이것을 ORM(Object-relational mapping)이라고 합니다.
    객체와 관계형 DB와 대응(매핑)된다는 의미입니다. 

     

    터미널 창을 열어 'python manage.py migrate' 를 실행해 봅니다. 

    migrate와 뒤에 나오는 makemigrations도 실행 버튼(run configrations)에 등록해 두시면 좋습니다.

    (venv) C:\PyProjects\myapp>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 auth.0010_alter_group_name_max_length... OK
      Applying auth.0011_update_proxy_permissions... OK
      Applying sessions.0001_initial... OK

    반영하고 나니 db.sqlite3 파일이 생성되어 있습니다.

    데이터베이스에 반영이 되었습니다.

     

    장고의 데이터베이스 기본값은 sqlite 입니다.
    실제 웹 사이트 운용에는 부족하지만 연습용으론 불편함이 없습니다. 
    나중에 수정할 수 있으니 걱정마시고 사용하시면 됩니다. 

     

    처음부터 실사용할 DB를 사용하면 더 좋긴 합니다만... 
    실습이니까요... 

     

     

    3. 슈퍼 유저 생성

    이제 DB도 만들었으니, 관리자 계정을 생성합니다.

    python manage.py createsuperuser

    아이디와 비번을 넣습니다. 이메일은 비워도 됩니다. ^^

    (venv) C:\PyProjects\myapp>python manage.py createsuperuser
    Username (leave blank to use '****'):
    Email address:
    Password:
    Password (again):
    Superuser created successfully.
    

     

    4. 관리자 페이지 접속

    관리자 계정도 만들었으니, 관리자 페이지에 접속해 봅니다. 

    http://127.0.0.1:8000/admin

    이제 기본 뼈대는 완성되었습니다. 

    관리자 페이지까지 확인이 가능하네요. 

     

    관리자 페이지의 유저 > 관리자 아이디 > 접속시간 확인을 해봅니다. 

     

    서버 시간과 9시간 앞서 있다고 친절하게 나옵니다. 

    ㅇㅇ 고쳐야죠. ^^

     

    5. 설정

    config/settings.py를 수정합니다. 

    새로운 앱을 생성할 때마다 여기에 등록을 합니다.

    종종 들리게 될 곳이죠. 

    일단 타임 존을 'UTC'에서 'Asia/Seoul'로 바꾸는 것 까지만 합시다. 

    TIME_ZONE = 'UTC'
    TIME_ZONE = 'Asia/Seoul'

    수고하셨습니다. 설정은 끝입니다. 

     

    장고의 DB 구조

    반응형
Designed by Tistory.