TAB Django study 1-1

이준하·2023년 9월 29일

TAB Django

목록 보기
1/5
post-thumbnail

Django tutorial part 1

프로젝트 생성

source tutorial-env/bin/activate
django-admin startproject mysite

생성한 프로젝트

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

프로젝트 내용텍스트

  • 외부 mysite/루트 디렉터리는 프로젝트의 컨테이너, 이름 원하는대로 수정 가능

  • manage.py: Django 프로젝트와 상호작용할 수 있게 해주는 명령줄 유틸리티, django-admin 및manage.pymanage.py의 세부 정보를 읽을 수 있다.

  • 내부 mysite/디렉터리는 프로젝트의 실제 Python 패키지, 이름은 그 안에 있는 항목을 가져오는 데 사용해야 하는 Python 패키지 이름(예: mysite.urls)

  • mysite/init.py: 이 디렉터리가 Python 패키지로 간주되어야 함을 Python에 알려주는 빈 파일

  • mysite/settings.py: 이 Django 프로젝트에 대한 설정/구성

  • mysite/urls.py: 이 Django 프로젝트에 대한 URL 선언, Django 기반 사이트의 목차

  • mysite/asgi.py: 프로젝트를 제공하기 위한 ASGI 호환 웹 서버의 진입점

  • mysite/wsgi.py: 프로젝트를 제공하기 위한 WSGI 호환 웹 서버의 진입점

장고 사이클

  • 고객이 요청
  • Nginx/ Apache : 배포할 때 사용하는 웹서버 => 요청을 맞이함
  • WSGI : 웹서버와 장고 프레임워크를 연결하기 위해 사용
  • Request : 특정 주소를 요구함
  • URL Resolution : urls.pt 파일에서 잘게 나눈다(파싱)
  • View : 잘게 나뉜 주소들이 역할에 맞게 view로 이동
  • view.py : 역할에 맞는 기능은 우리가 개발
  • Template : 디자인 담당
  • Response

개발 서버

python manage.py runserver

주의 사항 : 프로덕션 환경과 유사한 곳에서는 이 서버를 사용 금지. 개발하는 동안에만 사용하기 위한 것이다.

python manage.py runserver 0.0.0.0:8000

위 형식처럼 서버의 IP 변경도 가능하다

프로젝트 vs 앱

앱 : 블로그 시스템, 공개 기록 데이터베이스 또는 소규모 의견조사 앱과 같은 작업을 수행하는 웹 애플리케이션
프로젝트 : 특정 웹 사이트에 대한 구성 및 앱의 모음

한 프로젝트에 여러 개의 앱이 포함될 수 있다 / 앱은 여러 프로젝트에 있을 수 있다

설문조사 앱 만들기

poll 디렉토리 생성

python manage.py startapp polls

첫 번째 뷰 작성

polls/views.py

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

polls/urls.py 생성

from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
]

mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("polls/", include("polls.urls")),
    path("admin/", admin.site.urls),
]
  • include() : 다른 URLconf를 참조할 수 있다.

path() 인수

route : URL 패턴을 가진 문자열

요청이 처리될 때, Django 는 urlpatterns 의 첫 번째 패턴부터 시작하여, 일치하는 패턴을 찾을 때 까지 요청된 URL 을 각 패턴과 리스트의 순서대로 비교한다.

패턴들은 GET 이나 POST 의 매개 변수들, 혹은 도메인 이름을 검색하지 않는다. 예를 들어, https://www.example.com/myapp/ 이 요청된 경우, URLconf 는 오직 myapp/ 부분만 바라본다. https://www.example.com/myapp/?page=3, 같은 요청에도, URLconf 는 역시 myapp/ 부분만 신경쓴다.

view

Django 에서 일치하는 패턴을 찾으면, HttpRequest 객체를 첫번째 인수로 하고, 경로로 부터 ‘캡처된’ 값을 키워드 인수로하여 특정한 view 함수를 호출한다.

kwargs

임의의 키워드 인수들은 목표한 view 에 사전형으로 전달된다.=>?????????

name

URL 에 이름을 지으면, 템플릿을 포함한 Django 어디에서나 명확하게 참조할 수 있다. 이 강력한 기능을 이용하여, 단 하나의 파일만 수정해도 project 내의 모든 URL 패턴을 바꿀 수 있도록 도와쥰다.

Part 1의 추가 내용

<프로젝트 생성 방법 추가 내용>
1. django-admin startproject mysite
기존_폴더/mysite/mysite/setting.py 형태로 생성
튜토리얼에서 제공한 프로젝트 생성 방법

  1. django-admin startproject mysite .
    기존_폴더/mysite/setting.py 형태로 생성
    대부분 프로젝트를 생성하는 방법
profile
미친 개발자

0개의 댓글