Django를 사용하여 튜토리얼 애플리케이션 만드는 과정
이 튜토리얼에서는 Django를 사용하여 간단한 설문조사(Polls) 애플리케이션을 만드는 과정을 단계별로 설명합니다.
단계 1: 프로젝트 생성
먼저 Django 프로젝트를 생성합니다. 프로젝트 디렉토리를 만들고, Django의 기본 구조를 생성하는 명령어입니다.
$ django-admin startproject mysite
프로젝트 디렉토리를 생성한 후, 다음과 같은 파일 및 디렉토리가 생성됩니다.
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
단계 2: 개발 서버 실행
프로젝트 디렉토리에서 개발 서버를 실행합니다.
$ python manage.py runserver
이렇게 하면 Django 개발 서버가 시작됩니다. 서버는 기본적으로 8000번 포트에서 실행됩니다. 웹 브라우저에서 http://127.0.0.1:8000/ 를 열어 확인할 수 있습니다.
단계 3: 설문조사 앱 생성
이제 설문조사 앱을 생성합니다. polls
앱을 만들기 위한 명령어는 다음과 같습니다.
$ python manage.py startapp polls
polls
앱을 생성한 후, 해당 앱 디렉토리에는 다음과 같은 파일과 디렉토리가 생성됩니다.
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
단계 4: 첫 번째 뷰 작성
polls/views.py
파일을 열어 첫 번째 뷰를 작성합니다.
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
이 뷰는 간단한 HTTP 응답을 반환합니다.
단계 5: URLconf 설정
polls/urls.py
파일을 생성하고, 뷰와 URL 패턴을 연결합니다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
urlpatterns
리스트에 URL 패턴을 추가하고, 각 패턴은 특정한 뷰 함수와 연결됩니다.
단계 6: 최상위 URLconf에 포함
프로젝트의 최상위 URLconf(mysite/urls.py
)에서 polls
앱의 URLconf를 포함합니다.
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
include()
함수를 사용하여 polls
앱의 URLconf를 포함합니다. 이렇게 하면 /polls/
경로로 시작하는 URL이 polls
앱의 URLconf로 라우팅됩니다.
단계 7: 서버 실행 및 확인
마지막으로, 서버를 다시 실행하고 웹 브라우저에서 http://localhost:8000/polls/를 열어봅니다. 이제 "Hello, world. You're at the polls index." 메시지가 보일 것입니다.
이렇게 하나씩 단계를 따라가면서 Django 프로젝트와 앱을 설정하고 간단한 뷰를 만들었습니다. 이것은 Django 웹 애플리케이션을 만들기 위한 기본적인 시작 단계입니다. 이제 원하는 대로 앱을 확장하고 추가 기능을 구현할 수 있습니다.
Django 문서
- 시작하기
- Django 사용하기
- Django 설치하는 법
- 모델과 데이터베이스
- Handling HTTP requests
- 폼을 사용하여 작업하기
- 템플릿
- Class-based views
- 마이그레이션
- 파일 관리하기
- Testing in Django
- Django에서의 사용자 증명
- Django의 캐시 프레임워크
- Conditional View Processing
- Cryptographic signing
- 이메일 보내기
- 국제화와 현지화
- 로깅
- 페이지네이션
- Security in Django
- 성능과 최적화
- Serializing Django objects
- Django settings
- Signals
- 시스템 점검 프레임워크
- 외부 패키지
- 비동기 지원
- “How-to” 가이드
- “REMOTE_USER”를 이용해 인증하는 방법
- 장고의 CSRF 보호를 사용하는 방법
- 커스텀 “django-admin” 명령을 만드는 방법
- 사용자 지정 모델 필드를 만드는 방법
- 사용자 정의 lookup을 작성하는 방법
- 커스텀 템플릿 백엔드를 구현하는 방법
- 커스텀 템플릿 태그 및 필터를 만드는 방법
- 커스텀 스토리지 클래스를 작성하는 방법
- 장고를 배포하는 방법
- Django를 최신 버전으로 업그레이드하는 방법
- 오류 보고를 관리하는 방법
- 모델에 초기 데이터를 제공하는 방법
- Django를 레거시 데이터베이스와 통합하는 방법
- 로깅 구성 및 사용 방법
- CSV로 출력하는 방법
- PDF 파일을 만드는 방법
- 템플릿 재정의 방법
- 정적 파일 관리하기(이미지, 자바스크립트, CSS 등)
- 정적 파일을 배포하는 방법
- 윈도우즈에 Django 설치하기
- 데이터베이스 마이그레이션을 생성하는 방법
- How to delete a Django application
- 장고 자주묻는 질문
- 자주 묻는 질문: 일반
- 왜 이 프로젝트가 존재하나요?
- “Django”의 의미는 무엇이고, 어떻게 발음하나요?
- 장고는 안정적인가요?
- 장고의 규모를 변화시킬 수 있나요?
- 이면에는 누가 있나요?
- 장고의 라이선스는 어떤가요?
- 왜 장고는 파이썬의 라이선스 파일을 포함하고 있나요?
- 어떤 사이트들이 장고를 사용하나요?
- 장고는 MVC패턴으로 보여집니다, 하지만 컨트롤러를 “뷰”라고 부르고, 뷰를 “템플릿”이라고 합니다. 어떻게 일반적으로 사용하는 이름을 사용하지 않았나요?
- <Framework X>가<feature Y>를 합니다. 왜 장고는 못하나요?
- 왜 장고를 하나하나 파이썬 라이브러리를 사용하지 않고 일일이 만들었나요?
- 장고는 컨텐츠관리 시스템인가요(CMS)?
- 어떻게하면 장고 문서를 오프라인에서 볼 수 있게 다운로드 받을 수 있나요?
- 어떻게 장고를 인용할 수 있죠?
- 자주묻는 질문: 설치
- 자주 묻는 질문: 장고 사용하기
- 자주 묻는 질문: 도움을 받는법
- 자주 묻는 질문: 데이터베이스와 모델
- 자주 묻는 질문: 관리자
- 유효한 아이디와 패스워드를 입력해도 로그인을 할 수 없습니다. 아무 오류메시지 없이 로그인 페이지가 다시 나옵니다.
- 로그인을 할 수 없습니다. 유효한 아이디와 패스워드를 입력해도 다시 로그인 페이지가 나오면서 “올바른 아이디와 패스워드를 입력해주세요” 에러가 나타납니다.
- 어떻게 자동으로 필드값을 관리자모드에서 마지막으로 대상을 편집한 이용자로 세팅하나요?
- 대상을 작성한 이용자만이 그것을 편집할 수 있도록 하기위해 어떻게 관리자 접근을 제한하나요?
- 내 관리자 사이트의 CSS와 이미지들이 개발 서버에서는 잘 보여지지만 mod_wsgi를 이용할 때는 재대로 보여지지 않습니다.
- 저의 “list_filter”가 ManyToManyField를 가지고 있습니다. 그런데 필터에서 나타나지 않습니다.
- 몇몇 개체가 관리자 페이지에서 표시되지 않습니다.
- 어떻게 관리 인터페이스의 기능을 커스터마이즈 할 수 있습니까?
- 동적 관리자 사이트가 못 생겼어요. 어떻게 변경을 할 수 있나요?
- 관리자 사이트는 어떤 브라우저들을 지원하나요?
- 자주 묻는 질문 : 코드에 기여하기
- 문제해결
- 자주 묻는 질문: 일반
- API 레퍼런스
- 애플리케이션
- 시스템 점검 프레임워크
- Built-in class-based views API
- Clickjacking Protection
- contrib packages
- Django 관리자 사이트
- django.contrib.auth
- The contenttypes framework
- The flatpages app
- GeoDjango
- django.contrib.humanize
- The messages framework
- django.contrib.postgres
- The redirects app
- The sitemap framework
- “sites” 프레임워크
- The staticfiles app
- The syndication feed framework
- 관리자
- auth
- contenttypes
- flatpages
- gis
- humanize
- messages
- postgres
- redirects
- sessions
- sites
- sitemaps
- syndication
- Other add-ons
- Cross Site Request Forgery protection
- Databases
- django-admin and manage.py
- 코드에서 관리 명령 실행
- Django Exceptions
- File handling
- 양식
- 로깅
- Middleware
- Migration Operations
- 모델
- Model field reference
- Field attribute reference
- Model index reference
- Constraints reference
- Model _meta API
- Related objects reference
- Model class reference
- Model Meta options
- Model instance reference
- QuerySet API reference
- Lookup API reference
- Query Expressions
- Conditional Expressions
- Database Functions
- Paginator
- Request and response objects
- SchemaEditor
- 설정
- 시그널
- 템플릿
- TemplateResponse and SimpleTemplateResponse
- Unicode data
- django.urls utility functions
- django.urls functions for use in URLconfs
- django.conf.urls functions for use in URLconfs
- Django Utils
- Validators
- Built-in Views
- 메타 문서 및 기타