[WeatherPlace 프로젝트] Django 입문 (1)

Suntory·2021년 4월 29일
0

오늘은 제가 하고 있는 프로젝트인 Weatherplace project와 관련한 글을 써보려고 합니다. 아직 프로젝트라고 부르기도 미약한 것이지만 또 다음 단계로 나아갈 준비를 하고 있습니다.

다만, 프로젝트가 커지기 전에 Flask로 진행중이던 프로젝트를 Django로 리팩터링하는 게 어떨지 고민 중에 있습니다.

이유는 다음과 같습니다.

1) Flask의 너무 높은 자유도 (아직 초보자이기 때문에... 처음엔 구조가 잘 짜여진 스프링이 어렵다고 생각했지만 오히려 구조가 아예없는 Flask가 더 어려운 것 같다)

2) Spring과 유사한 패턴의 개발 방식(결국은 Java+Spring을 언젠간 해봐야 할텐데 그 때 조금이라도 유사한 Django를 해보는 것이..?)

3) 미래에 개인적으로 Full-stack project를 하기 용이하다. (거의 무에서 유를 창조해내는 Flask보다는 기본적으로 Fullstack Framework를 지향하는 Django가 유리하지 않을까?)

여튼, 그래서 Django 공식 문서를 보며 Project의 틀을 만들고 기존 코드들을 이식하고, 서버에 배포한 뒤 CI/CD 등도 구현해보고, 동시에 기능을 만들면서 필요한 테스트 코드도 작성해보는 연습을 해나갈까 합니다.

첫 시간으로 Django 프로젝트 생성과 하면서 알게된 Python Package의 개념을 소개할까 합니다.

1. Django 설치

Django를 시작하려면 맨 먼저 설치를 해야겠죠? 터미널에서 pip를 통해 간단하게 설치할 수 있습니다.

$ python -m pip install Django

잘 설치되었는지 확인하려면 터미널에서 다음 명령어를 입력합니다.

$ python
>> import django
>> print(django.get_version())
3.2

2. Project 생성

다음으로 Django Project를 생성해봅시다. Terminal에서 cd 명령어를 통해 프로젝트 폴더로 이동하거나, IDE 등에서 작업공간 폴더를 생성하고 터미널에 다음 명령어를 입력합니다.

$ django-admin startproject [my_project_name]

my_project_name에 본인의 프로젝트 이름을 정하고 넣으시고, 단 Python이나 Django에서 사용되는 이름(ex. test 등)은 피해야 합니다.

이렇게 입력하면, 해당 폴더의 하위에 다음과 같은 폴더들이 생깁니다.

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

튜토리얼에서는 mysite라는 이름의 프로젝트를 생성했습니다.

이 중 manage.py라는 파일의 용도를 소개하자면,

  • manage.py : Django project와 다양한 방법으로 상호작용할 수 있는 커맨드라인 유틸리티 입니다. 쉽게 말해서 프로젝트를 관리할 수 있는 역할을 관장합니다.
    주요 명령어로는,
    startapp : 앱 생성
    runserver : 서버 실행
    createsuperuser : 관리자 생성
    makemigrations app : app 모델의 변경사항 체크
    migrate : 변경사항을 DB에 반영
    shell : 쉘을 통해 데이터를 확인
    collectstatic : static 파일을 한곳에 모음.
    등이 있다고 합니다.

이제 위에서 나온 manage.py 를 활용해 서버를 구동해봅시다.
terminal에서 다음 명령어를 수행합니다.

python manage.py runserver

그럼 콘솔 창에 서버가 구동되었다는 메시지가 뜨고 서버의 URL이 표시됩니다.
들어가면 로켓이 발사되는 페이지가 뜨고 첫 django project를 구동에 성공했습니다.

이렇게 첫 프로젝트를 생성했으니 다음으로는 첫 앱을 만들어보겠습니다.

    
profile
천천히, 하지만 꾸준히 그리고 열심히

0개의 댓글