오늘은 간결한 노트 형식으로 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 버튼을 누르면 서버를 닫고 다시 파이썬 명령문을 입력하고 실행할 수 있음
2) 가상환경 구성
여기까지 했다면 가상 환경을 구성해야 하는데, 파이참에서는 오른쪽 하단을 클릭해서 변경 가능!
Add New Interpreter 클릭 :
Conda Environment에서 Create new environment 클릭 후 Ok 클릭하면 변경됨!
3) 애플리케이션 구성하기
- manage.py 파일이 있는 디렉터리인지 확인 후에 다음 명령문 실행 :
python manage.py startapp hello01
- 디렉터리를 확인하면 hello01이라는 폴더가 생성되어 있음
- hello01 안에 migration 폴더와 init.py, models.py, urls.py 등의 파일이 있음
- 여기에 views.py를 만들어 줘야 함 (여기서 함수를 define 해주는 것!)
- Settings.py에서
INSTALLED_APPS = []
부분을 찾아서 방금 만들었던 앱('hello01')을 추가하기 - app 디렉토리 안에 templates라는 디렉터리(폴더) 추가 - django에서 내부적으로 url 요청을 받으면 templates 폴더에서 웹페이지를 찾아서 실행해 주기 때문에 templates라고 만들어 줘야 함!
- 그 안에 hello01 추가
- index.html 파일 추가, HTML 코드로 원하는 내용 작성
- views.py 안에
from django.shortcuts import render
추가 - views.py 안에 원하는 실행문 작성 (다음은 인덱스 페이지를 그리라는 코드)
def index(request): return render(request, 'index.html')
- hello01 폴더에 urls.py에
from . import views
추가 - urls.py에 있는 urlpatterns 대괄호 안에 매핑 경로 추가하기
path('', views.index),
참고: 서버가 요청을 받았을 때 실행 순서
- 클라이언트에게 요청된 url을 받아서 urls.py 안의 urlpatterns를 살핀다
- urls 안에 있는 path를 찾아서 해당 함수로 매핑시켜 준다
- 예)
path('', views.index)
는 아무런 url이 없다면 views 파일의 index를 실행시키라는 뜻
- 예)
- 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 %}
'Data Science' 카테고리의 다른 글
[데이터분석] 웹 크롤링 파이썬 BeautifulSoup 사용법 (0) | 2023.06.28 |
---|---|
[Javascript] innerHTML, innerText, textContent 차이점 예제 포함 (0) | 2023.06.26 |
[Django] 파이썬 웹 개발 기초 개념, 장고 프로그래밍 (0) | 2023.06.24 |
Javascript AJAX 예제, 비동기 데이터 불러오기 (전기자동차 데이터 분석 예제) (0) | 2023.06.21 |
[Python 공부] Threading, GIL, Futures 모듈, ThreadPoolExecutor (0) | 2023.06.20 |