반응형

WHY?

Django 기초 정리하기 시리즈는 Django를 사용해서 웹 사이트 개발중에 자주 사용하는 개념과 함수를 아무생각 없이 사용하는 느낌이 들었고, 함수가 어떤 동작을 하는지는 알지만 그 함수에 대해서 정확히 모르고 있었다. 이렇게 되면 나중에 응용력이 떨어질 것을 우려해서 기초에 대한 정리가 필요하다고 판단하였다.

또한, Django를 사용해서 웹 사이트를 만들려고하는 사람들 중 이제 막 시작할려는 사람이 읽어보면 조금이라도 도움이 될 만한 내용을 정리한다.

 

cmd 명령어는 Window 기준으로 작성하였다. MacOS의 명령어와 차이가 있다.


가상 환경

Django를 사용해서 웹 사이트를 개발할 때 가상 환경을 설정해야 한다. 가상 환경을 설정하는 가장 큰 이유는 다양한 프로젝트를 진행할 때 프로젝트마다 독립된 환경을 제공할 수 있기 때문이다. 하나의 프로젝트만 진행한다고 하면 가상환경이 필수는 아니지만 여러 프로젝트를 진행하게 된다면 그 프로젝트마다 사용하는 언어, 툴들의 버전이 다를 수 있다.

예를 들어서 A 프로젝트는 파이썬의 버전이 3.6이고, 장고의 버전이 3.1이다. B 프로젝트는 파이썬의 버전이 3.9이고, 장고의 버전이 4.0이다. 이러한 상황일 때 A 프로젝트를 진행하다 B 프로젝트를 진행하면 파이썬, 장고의 버전을 변경해야 오류가 발생하지 않을 것이다. 두 프로젝트를 동시에 작업하기 위해서는 매번 버전을 변경해야하는 불편함이 발생한다. 바로 이 불편함을 해결하기 위해서 가상 환경이 필요한 것이다.

 

가상 환경 설정하기

우선 window 검색창에 cmd(명령 프롬프트)를 검색하고 실행한다.

 

다음 명령어를 입력해서 'venvs' 이름의 폴더(디렉터리)를 C드라이브에 생성한다.

C:\Users\username> cd \
C:\> mkdir venvs
C:\> cd venvs

다음 명령어를 입력해서 파이썬 가상 환경을 만든다.

C:\venvs> python -m venv mysite

여기서 mysite는 가상 환경의 이름이다. 원하는 이름으로 변경해서 사용해도 된다.

명령을 잘 수행했다면 C:/venvs 폴더 아래에 mysite라는 폴더가 생성되었을 것이다. 이 폴더가 가상 환경이다. 그런데 이 폴더를 만들었다고 바로 가상 환경이 적용되는 것은 아니다. 가상 환경을 사용하려면 가상 환경에 진입해야한다.

 

가상 환경에 집입하기 위해서는 우리가 생성한 mysite 가상 환경에 있는 Scripts 폴더의 activate 명령을 수행해야 한다.

다음 명령어를 입력해서 가상 환경에 진입한다.

C:\venvs> cd C:\venvs\mysite\Scripts
C:\venvs\mysite\Scripts> activate
(mysite) C:\venvs\mysite\Scripts>

가상 환경에 진입하면 C:\ 왼쪽에 우리가 진입한 가상 환경을 확인할 수 있다.

 

현재 진입한 가상 환경에서 벗어나려면 deactivate라는 명령을 실행하면 된다.

(mysite) C:\venvs\mysite\Scripts> deactivate
C:\venvs\mysite\Scripts>

가상 환경에서 벗어났다면 C:\ 왼쪽에 있었던 가상 환경이 없어졌을 것이다.

 

가상 환경에 장고 설치하기

가상 환경에 진입한 상태에서 다음의 명령어를 입력해서 장고를 설치한다.

pip install django==4.0.3을 입력하면 장고 4.0.3 버전이 다운된다. 버전 부분을 제외하고 pip install django 입력하면 최신버전으로 다운한다. 원하는 버전이 있다면 버전을 입력하면 된다.

(mysite) C:\venvs\mysite\Scripts> pip install django==4.0.3

You should consider upgrading via the 'python -m pip install --upgrade pip' command.

만약 위와 같은 메시지가 나오면 pip를 최신버전으로 다운하라는 의미이다.

 

다음 명령어를 입력해서 pip를 최신버전으로 다운한다.

(mysite) C:\venvs\mysite\Scripts> python -m pip install --upgrade pip

이렇게 하면 장고가 설치되었다.


프로젝트 생성하기

여러 장고 프로젝트를 할 수도 있다. 여러 프로젝트를 하게 되면 프로젝트를 모아둘 폴더를 생성할 필요가 있다. C드라이브에 project 폴더를 생성해서 장고 프로젝트들을 저장하겠다.

C:\Users\username>
cd \ C:\> mkdir projects
C:\> cd projects
C:\projects>

project 폴더를 생성 후에 해당 폴더로 이동하였다.

 

이제 가상 환경에 진입해야한다.

C:\projects> C:\venvs\mysite\Scripts\activate
(mysite) C:\projects>

이전에 설치했던 가상 환경의 Scripts의 activate을 실행시켜 가상 환경에 진입한다.

 

이제 장고 프로젝트를 생성한다. 장고 프로젝트를 생성할 때 생각할 점이 있다.

(mysite) C:\projects\mysite> django-admin startproject <project 이름>

다음과 같이 명령어를 입력하면 우리가 입력한 프로젝트 이름으로 프로젝트 폴더가 생성되고 또 다시 같은 이름으로 프로젝트 앱이 생성된다. 예를 들어, 프로젝트 이름이 'test_project'일 때 test_project 프로젝트 폴더 안에 test_project 프로젝트 앱이 생성되어 test_project / test_project 구조가 되어버린다.

오류가 발생하지는 않지만 관리하는데 불편함이 생길 수 있다.

 

이를 해결하기 위해서 폴더를 먼저 생성 후에 그 폴더에서 장고 프로젝트를 생성하면 된다.

프로젝트 이름을 mysite으로 하기 위해서 mysite라는 폴더를 생성하고 이동한다.

(mysite) C:\projects>mkdir mysite
(mysite) C:\projects>cd mysite
(mysite) C:\projects\mysite>

다음의 명령어로 장고 프로젝트를 생성할 수 있다. 이 명령어는 이전에 나온 명령어와 달리 프로젝트 앱의 이름이 config이고, '.' 을 입력해서 현재 폴더에 장고 프로젝트를 생성한다. 

(mysite) C:\projects\mysite> django-admin startproject config .

서버 구동하고 웹 사이트 접속하기

가상 환경에 진입하고 장고 프로젝트 폴더으로 이동하였으면 서버를 구동해서 웹 사이트에 접속할 수 있다.

다음 명령어를 사용하면 서버를 구동한다.

(mysite) C:\projects\mysite> python manage.py runserver

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 18 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.
November 14, 2022 - 22:53:31
Django version 4.0.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/ 라는 주소가 나오는데 이 주소를 인터넷에 입력하면 우리의 웹 사이트에 접속할 수 있다.

 

성공적으로 웹 사이트에 접속하였다.

주소를 검색에서 위와 같은 화면이 나타난다면 성공적으로 서버를 구동한 것이다.

 

이후 다양한 장고 설정들을 통해서 나만의 웹 사이트를 만들 수 있다.


참고 

코드가 python코드로 나타나 있지만 cmd에 작성한 코드라고 생각하면 된다.

 

점프 투 장고

https://wikidocs.net/70588

https://wikidocs.net/72377

반응형

'Web Framework > Django' 카테고리의 다른 글

[Django] 기초 정리하기 (2) : URL  (0) 2022.11.22
복사했습니다!