Post

[Django] Django 프로젝트 생성 기초

Django 프로젝트를 생성하는 방법에 대해서 알아보자

✅ Django

Django는 파이썬으로 만든 웹 프레임워크이다. 빠르고 효율적인 웹 개발을 위해 MVT 패턴을 사용하고 있다.

장점
  • 웹 개발 속도 극대화
  • 코드 재사용 및 모듈화
  • 안전한 웹 애플리케이션 구축
단점
  • 막강한 기능을 잘 이용하려면 숙련 및 개념 탑재가 필요하다.
  • 익혀야 하는 개념들이 조금 복잡하고 까다롭다.

✅ Django 설치

설치는 간단하다. 가상환경에 pip install django를 입력하자.

✅ 프로젝트 세팅과 배포

1) 프로젝트 만들기 & 이동

파일을 관리할 폴더를 생성하고 해당 폴더로 들어가 아래의 명령어를 실행하자. 예를들어 project라는 이름의 폴더를 생성하고 그 폴더에서 작업을 진행한다면 아래와 같다.

1
2
$ mkdir project
$ cd project
1
$ django-admin startproject mysite .

그럼 project 폴더 안에 mysite 폴더와 manage.py 파일이 생성된 것을 확인할 수 있다.

아래의 명령을 실행하여 서버를 구동하고 웹 사이트에 접속해볼 수 있다.

1
$ python manage.py runserver

그럼 아래와 같은 창이 뜰 것이다!

image

2) 앱 생성 및 등록

아래의 명령어를 작성하여 app을 생성해봅시다.

1
$ python manage.py startapp myapp

그럼 project 폴더 안에 myapp 폴더가 생성된 것을 확인할 수 있다.

이 app을 등록해줘야 하기 때문에, mysite 폴더 안의 settings.py로 가서 INSTALLED_APPS에 해당 app 이름을 추가해주자. 지금 예시의 경우 myapp을 추가해주면 된다.

image

그리고 http://127.0.0.1:8000/myapp/ url로 이동시 “myapp 페이지 입니다.” 라는 문구를 출력하도록 해보자.

✔️ URL 분리 및 매핑

mysiteurls.py로 가서 myapp url을 myapp/urls.py로 매핑하자.

1
2
3
4
5
6
7
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('myapp/', include('myapp.urls')),
]

그리고 myapp 폴더에 urls.py를 생성하고 아래와 같이 작성하자.

1
2
3
4
5
6
7
from django.urls import path
from . import views

app_name = 'myapp'
urlpatterns = [
    path('', views.index),
]

그리고 myapp 폴더 안에 views.py에서 아래와 같이 작성하자.

1
2
3
4
5
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(req):
    return HttpResponse("myapp 페이지입니다.")

이제 http://127.0.0.1:8000/myapp/로 접속하면 아래와 같이 뜰 것이다.

image

++ 여기선 다루지 않는 부분..

✔️ Migrate

추후, DB를 사용할 때 models.py를 작성할 텐데 models.py에 변경사항이 발생하면 아래의 명령어로 migration을 생성하고 migrate로 DB를 업데이트 할 수 있다.

1
2
$ python manage.py makemigrations
$ python manage.py migrate

✔️ Super user 생성

1
$ python manage.py createsuperuser
This post is licensed under CC BY 4.0 by the author.

-

[Django] dj-rest-auth를 활용한 JWT 회원가입/로그인 구현