brew install poetry
poetry add Django
위 명령어 실행시 pyproject.toml, .venv, poetry.lock 파일 같이 생성됨
==> poetry add Django 명령을 실행하면 Django가 프로젝트 의존성으로 추가되고,
pyproject.toml 파일에 해당 내용이 기록됨, 동시에 poetry.lock 파일이 업데이트되어 Django 및 그 의존성의 정확한 버전 정보가 저장됨. 가상 환경 .venv 내에는 필요한 패키지들이 설치되어 프로젝트와 격리된 환경에서 작동 할 수 있게 됨.
==> pyproject.toml 파일은 프로젝트의 구조와 의존성을 정의하는 반면,
poetry.lock 파일은 이러한 의존성의 구체적인 버전을 고정하여 프로젝트의 일관성을 유지하는 데 사용됨. 두 파일 모두 프로젝트의 안정적인 재생성과 의존성 관리에 중요한 역할을 함.
django-admin startproject config .
# startproject 는 장고프로젝트를 만들겠다, config는 장고프로젝트의 폴더명을 config라고 하겠다,
.은 내가 현재 있는 루트 폴더에 만들어달라 는 의미.
Django의 URL Dispatcher는 Django 웹 프레임워크의 핵심 구성 요소 중 하나로, 웹 요청을 처리하고 해당요청에 맞는 View 함수로 라우팅하는 역할을 함.
즉, 사용자가 웹 브라우저에서 URL을 요청할 때, URL Dispather는 이 URL 을 분석하여 정의된 URL 패턴을 찾고, 해당 패턴에 연결된 View함수를 호출함.
Dispatcher: "Dispatcher"라는 용어는 일반적으로 어떤 요청이나 정보를 받아 적절한 목적지 또는 처리절차로 전달하는 역할을 하는 컴포넌트를 지칭하는데 사용
URL 패턴 정의: Django 프로젝트의 urls.py 파일에는 URL 패턴이 정의됨. 이 패턴은 특정 URL과 이 URL이 호출 할 View 함수를 매칭함.
URL 매칭: 사용자가 웹사이트에 접근 할 때, URL Dispatcher는 요청된 URL을 urls.py 에 정의된 패턴과 순차적으로 비교함.
View 함수 호출: 일치하는 URL 패턴을 찾으면, URL Dispatcher는 해당 URL 패턴에 연결된 View함수를 호출함. View 함수는 HTTP 요청을 처리하고 응답을 반환함.
변수 전달: URL 패턴에는 변수를 포함시킬 수 있음. 이 변수들은 동적으로 변경되는 URL 부분을 처리하고, 이 값을 View함수에 인자로 전달할 수 있음.
config/urls.py
from django.contrib import admin
from django.urls import path
from feeds import views
urlpatterns = [
path("admin/", admin.site.urls),
path("feeds/", views.show_feed),
path("feeds/all", views.all_feed),
path("feeds/<int:feed_id>/<str:feed_content>/", views.one_feed),
]
create feeds app
python manage.py startapp feeds
feeds/views.py
from django.shortcuts import render
from django.http import HttpResponse
def show_feed(request):
return HttpResponse("show feed")
def one_feed(request, feed_id, feed_content):
return HttpResponse(f"feed id: {feed_id}, {feed_content}")
def all_feed(request):
return HttpResponse("all feed")
config/urls.py
from django.contrib import admin
from django.urls import path, include
from feeds import views
urlpatterns = [
path("admin/", admin.site.urls),
path("feeds/", include("feeds.urls")), # 경로 입력
]
include를 사용해 feeds에 있는 urls파일로 이동, 그 urls 파일에 적어놓으면 됨.
feeds/urls.py (urls.py 파일 생성 필요)
from django.urls import path
from . import views
urlpatterns = [
path("", views.show_feed)
paht("<int:feed_id>/<str:feed_content>", views.all_feed,
]
📝한줄끄적
장고는 flask처럼 웹 서버와 연결시켜주는 것인데 기능이 많아 더 무겁고 편리하게 사용 가능하다고 이해했다. 구조에 맞는 url실행시 config의 urls 파일에서 feeds의 view파일을 매칭하여 불러오는 것. feeds에 url 파일 만들어 간단하게 분리도 가능. 장고 이름이 먼가,, 당고🍡 같은느낌~