Django 프로젝트만들기 pt1
처음으로 프로젝트 만들기
$ django-admin startproject mysite
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py
장고 프로젝트가 제대로 동작하는지 확인해봅시다.
$ python manage.py runserver
앱을 생성하기 위해 manage.py가 존재하는 디렉토리에서 다음의 명령을 입력해 봅시다.
$ python manage.py startapp polls
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
View (뷰) 작성하기
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
뷰를 호출하려면 ← 이와 연결된 URL이 있어야 함 ← 이를 위해 URLconf가 사용됨 ← polls 디렉토리에서 URLconf를 생성하려면 urls.py 파일 생성해야함 (vim urls.py)
from django.urls import path # 이것도 어디 sys에 django.http랑 같이 있겠지...? from . import views # 같은 디렉토리에 있는 views.py 파일을 불러옴. urlpatterns = [ path('', views.index, name='index'), # view.py 안에 내가 만들어둔 index라는 함수를 데려왔네 ]
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
최상위 URLconf 에서 polls.urls 모듈을 바라보게 설정합니다
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
include()를 사용해야 하나요?
- 다른 URL 패턴을 포함할 때마다 항상 include()를 사용해야 합니다. admin.site.urls가 유일한 예외입니다
path() 함수에는 2개의 필수 인수인 route 와 view, 2개의 선택 가능한 인수로 kwargs 와 name 까지 모두 4개의 인수가 전달 되었습니다.
path() 인수: route¶
route 는 URL 패턴을 가진 문자열 입니다. 요청이 처리될 때, Django 는 urlpatterns 의 첫 번째 패턴부터 시작하여, 일치하는 패턴을 찾을 때 까지 요청된 URL 을 각 패턴과 리스트의 순서대로 비교합니다.
패턴들은 GET 이나 POST 의 매개 변수들, 혹은 도메인 이름을 검색하지 않습니다. 예를 들어, https://www.example.com/myapp/ 이 요청된 경우, URLconf 는 오직 myapp/ 부분만 바라 봅니다. https://www.example.com/myapp/?page=3, 같은 요청에도, URLconf 는 역시 myapp/ 부분만 신경씁니다.
path() 인수: view¶
Django 에서 일치하는 패턴을 찾으면, HttpRequest 객체를 첫번째 인수로 하고, 경로로 부터 〈캡처된〉 값을 키워드 인수로하여 특정한 view 함수를 호출합니다.
path() 인수: kwargs¶
임의의 키워드 인수들은 목표한 view 에 사전형으로 전달됩니다.
path() 인수: name¶
URL 에 이름을 지으면, 템플릿을 포함한 Django 어디에서나 명확하게 참조할 수 있습니다. 이 강력한 기능을 이용하여, 단 하나의 파일만 수정해도 project 내의 모든 URL 패턴을 바꿀 수 있도록 도와줍니다.
$ python manage.py migrate
migrate 명령어는 /mysite/settings.py 파일 내부에 있는 INSTALLED_APPS 를 보고 필요한 데이터 베이스를 생성하거나, 수정사항을 저장하는 역할을 한다. 즉, 이 명령을 실행한 후라면, 필요한 데이터 베이스의 기본 구조가 만들어졌다고 이해하면 된다.
모델 활성화하기
import datetime from django.db import models from django.utils import timezone class Choice(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) def __str__(self): return self.choice_text
python manage.py makemigrations polls python manage.py migrate
makemigrations 라는 명령어로 내가 모델을 변경시킨 사실 (또는 생성했다는 사실)과 이 변경사항을 migration으로 저장시키고 싶다는 것을 Django에게 알려주는 것이다.
Author And Source
이 문제에 관하여(Django 프로젝트만들기 pt1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@15_hwukjunwoo/Django-8qk1s9ma저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)