새소식

BackEnd/Django

Django, AWS EC2 배포하기 - [1] Django 프로젝트 생성

  • -

Windows 에서 Django 프로젝트를 생성하고 Aws에 올리기 위해 Git bash를 우선 설치해줍니다.

Git bash에서 명령어 사용이 훨씬 수월하기 때문입니다.

 

다운로드는 여기서

https://gitforwindows.org/

 

우선장고 프로젝트 폴더를 생성한 후 해당 폴더에서 Git bash를 열어 줍니다.

 

가상환경 만들기

  • 가상 환경은 파이썬 프로젝트별 독립된 공간
  • 독립된 가상 환경을 통해 다운로드한 라이브러리들이 충돌을 일으키는 것을 방지함
  • 외부 라이브러리는 해당 프로젝트에 종속되며 다른 프로그램에 영향을 주지 않음

 

해당 폴더에서 가상 환경을 만들어 줍니다.

$ python -m venv venv

 

이후 가상 환경을 활성화 시켜줍니다.

$ source venv/Scripts/activate

 

아래 이미지와 같이 괄호안에 가상환경이 표시된다면 정상적으로 활성화 된 것입니다.

 

 

아래의 명령어로 Django를 설치해줍니다.

$ pip install django djangorestframework

 

Django 프로젝트를 생성해줍니다.

$ django-admin startproject mydjango

 

해당 프로젝트에 앱을 생성해줍니다.

$ cd mydjango
$ python manage.py startapp myapp

 

아래의 그림대로 설정을 해줍니다.

  • ALLOWED_HOSTS => '*'
  • LANGUAGE_CODE = 'ko-kr'
  • TIME_ZONE = 'Asia/Seoul'
  • STATIC_ROOT = BASE_DIR / 'staticfiles/'

 

 

또 INSTALLED_APPS에 생성한 앱과 rest_framework를 추가해줍니다.

 

 

 

배포 후 테스트를 위해 간단한 html 파일을 만들어 줍니다.

이때 html의 경로는 앱 > templates(폴더생성) > 앱과 동일한 폴더 생성 > html 파일 경로에 위치해야합니다.

 

myapp/templates/myapp/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>Django입니다.</h1>
</body>
</html>

 

mysite/urls.py

from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name="index"),
]

 

이후 아래의 명령어를 통해 migration을 진행해줍니다.

migration의 경우 model 생성 및 수정에 대한 사항을 Django에 전달하는 것입니다.

$ python manage.py makemigrations && python manage.py migrate

 

서버를 실행해줍니다.

$ python manage.py runserver

 

이후 아래의 주소로 들어갑니다.

http://127.0.0.1:8000/

 

 

이렇게 Django의 간단한 배포가 끝났습니다.

 

그런데 아직 끝난게 아닙니다~!!

위에서 가상환경을 만들어준 이유가 라이브러리간 충돌을 방지하기 위해서라고 말씀드렸죠??

 

그래서 Django의 경우 현재 프로젝트에 사용한 패키지를 서버에서도 동일하게 적용하기 위해 requirements.txt 를 만들어 두는 것이 좋습니다.

$ pip freeze >> requirements.txt

 

해당 명령어를 실행할 경우 requirements.txt에 현재 패키지 리스트가 저장이 됩니다.

'BackEnd > Django' 카테고리의 다른 글

Django, AWS EC2 배포하기 - [2] EC2에 프로젝트 업로드  (0) 2021.06.08
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.