본문 바로가기
Data Science

[Python] 웹개발 Django 프로젝트 시작하기 코드 포함

by 한입만쥬 2023. 6. 25.

오늘은 간결한 노트 형식으로 django 파이썬 웹프로그래밍 개념을 짚어 보고자 합니다.
MVC 디자인 패턴, 장고 프로젝트 초기 설정, 시작 방법, 앱 만드는 방법, HTML 파일 내부에 django variable과 태그를 입력하는 방법까지 정리해 보았습니다!

MVC 디자인 패턴

MVC(Model, View, Controller) 패턴은 오랜 기간 개발자들에 의해 굳혀진 웹 개발 방법론 중 하나인데요. MVC 패턴은 소프트웨어 개발을 할 때 사용자에게 보이는 로직과 내부적으로 실행되는 비즈니스 로직을 나눠서 서로에게 영향이 없도록 개발할 수 있고, 유지 보수할 수 있는 장점이 있습니다.

  • 장고에서의 MVC 패턴:
    • models.py = Model 역할
    • views.py = Controller 역할 (화면 뒤에서 진행되는 내부적인 로직을 담당 - 예: 사용자 입력 값을 데이터베이스에 저장, 삭제 등)
    • templates(HTML 파일들)= View 역할 (사용자에게 보일 화면)

1) 초기 설정하기 / 프로젝트 시작하기

저는 파이참(PyCharm) 프로그램을 사용하고 있는데, 파이참 하단왼쪽에서 터미널 창을 켜서 아래의 명령문들을 입력해서 장고를 설치하고 실행시켰습니다.

  • pip install Django
    : django 설치
  • django-admin startproject mysite
    : mysite라는 프로젝트를 시작 -> 디렉터리 생성됨
  • cd mysite
    : mysite 폴더로 이동
  • ls
    : 폴더 내의 파일 탐색해서 manage.py, mysite 가 존재하는지 확인! 이걸 하는 이유는 다음 명령문들이 manage.py를 사용하는 것들이기 때문
  • python manage.py runserver
    : 아래 사진처럼 http://127.0.0.1:8000/이라는 링크가 나오고, 그것을 클릭하면 django 프로젝트가 로컬(내 컴퓨터)에서 실행되면서 브라우저 창이 열림


  • python manage.py runserver localhost:8888
    : 원하면 다른 숫자 포트 사용해 사이트를 열 수 있음 (여기서 127.0.0.1은 localhost, 즉 내 컴퓨터를 가리키고, 8000번 포트를 사용한다는 것이기 때문에 8888처럼 다른 포트로 여는 것도 가능)
  • 터미널에 control + c 버튼을 누르면 서버를 닫고 다시 파이썬 명령문을 입력하고 실행할 수 있음

django 서버 실행django 서버 실행 첫 화면
django 서버 실행

2) 가상환경 구성

여기까지 했다면 가상 환경을 구성해야 하는데, 파이참에서는 오른쪽 하단을 클릭해서 변경 가능!

pycharm 우측 하단 가상환경 정보
pycharm 우측 하단 가상환경 정보

Add New Interpreter 클릭 :

pycharm 가상환경 세팅
pycharm 가상환경 세팅

Conda Environment에서 Create new environment 클릭 후 Ok 클릭하면 변경됨!

pycharm 가상환경 만들기
pycharm 가상환경 만들기

3) 애플리케이션 구성하기

  1. manage.py 파일이 있는 디렉터리인지 확인 후에 다음 명령문 실행 :
    python manage.py startapp hello01
  • 디렉터리를 확인하면 hello01이라는 폴더가 생성되어 있음
  • hello01 안에 migration 폴더와 init.py, models.py, urls.py 등의 파일이 있음
  • 여기에 views.py를 만들어 줘야 함 (여기서 함수를 define 해주는 것!)
  1. Settings.py에서 INSTALLED_APPS = [] 부분을 찾아서 방금 만들었던 앱('hello01')을 추가하기
  2. app 디렉토리 안에 templates라는 디렉터리(폴더) 추가 - django에서 내부적으로 url 요청을 받으면 templates 폴더에서 웹페이지를 찾아서 실행해 주기 때문에 templates라고 만들어 줘야 함!
  3. 그 안에 hello01 추가
  4. index.html 파일 추가, HTML 코드로 원하는 내용 작성
  5. views.py 안에 from django.shortcuts import render 추가
  6. views.py 안에 원하는 실행문 작성 (다음은 인덱스 페이지를 그리라는 코드)
     def index(request):
         return render(request, 'index.html')
  7. hello01 폴더에 urls.py에 from . import views 추가
  8. urls.py에 있는 urlpatterns 대괄호 안에 매핑 경로 추가하기 path('', views.index),

참고: 서버가 요청을 받았을 때 실행 순서

  1. 클라이언트에게 요청된 url을 받아서 urls.py 안의 urlpatterns를 살핀다
  2. urls 안에 있는 path를 찾아서 해당 함수로 매핑시켜 준다
    • 예) path('', views.index) 는 아무런 url이 없다면 views 파일의 index를 실행시키라는 뜻
  3. views.py의 def index 부분을 찾아서 해당 명령문 실행
    • return render(...) 일 경우에는 렌더링 해서 반환

4) 브라우저 다시 실행

터미널에 python manage.py runserver를 다시 실행해 보면 index.html 브라우저가 나오는 것을 확인할 수 있음!


HTML 파일 내에 Django variables 입력 방법

{{ my_dict.key }}
{{ my_object.attribute }}
{{ my_list.0 }}

주석 처리 방법 Comments

  • Django에서 주석은 {# 주석 내용 #}으로 작성해야 렌더링 된 HTML에는 포함되지 않음
  • 다중 행 주석: {% comment %} 주석 내용 {% endcomment %}
    {% comment %}
    이 부분은
    다중 행 주석입니다.
    {% endcomment %}