본문 바로가기

레퍼런스

(41)
장고(Django) 실제로 뭔가 작업을 하는 뷰를 만들기. 각 뷰는 두 가지 중 하나를 해야만 하는 책임이 있습니다: 요청된 페이지의 내용을 포함한 오브젝트를 반환하거나 HttpResponse를 반환하거나 Http404처럼 익셉션을 반환하는 것입니다. 나머지는 여러분께 달렸습니다. 여러분의 뷰는 데이터베이스에서 레코드를 읽어오거나 아닐 수 있습니다. 장고의 템플릿 시스템 - 혹은 서드파티 파이썬 템플릿 시스템 - 을 사용하거나 아닐 수도 있습니다. 파이썬 라이브러리를 사용해서 PDF 파일을 생성한다던지, XML을 출력한다던지, 즉석에서 ZIP 파일을 만드는 등의 작업을 할 수 있습니다. 설명하기 편하게 장고의 자체 데이터베이스 API를 사용하도록 하겠습니다. 게시일자를 포함하고 콤마로 구분되어 있는 적어도 5개의 질문을 보여주는 index() 뷰가 있습니다. #..
장고(Django) 더 많은 뷰 작성하기. 이제 polls/views.py에 더 많은 뷰를 더해보겠습니다. 이 뷰들은 인자를 받기 때문에 조금씩은 다릅니다. # polls/views.py def detail(request, question_id): return HttpResponse("You're looking at question %s." % question_id) def results(request, question_id): response = "You're looking at the results of question %s." return HttpResponse(response % question_id) def vote(request, question_id): return HttpResponse("You're voting on questio..
장고(Django) Admin을 소개합니다. 철학 여러분의 직원과 고객에게 admin 사이트를 생성해 주고 내용을 지우는 일은 상상력을 동원하지 않고 매우 지루한 작업입니다. 이런 이유로, 장고는 모델의 인터페이스를 생성하는걸 완전히 자동화했습니다. 장고는 newsroom 환경에서 만들어져서 "콘텐츠 제공자"와 "공개된" 사이트와는 매우 확실하게 분리돼 있습니다. 사이트 관리자는 뉴스, 이벤트, 스포츠 점수 등을 시스템에 더하고 공개된 사이트에 그 내용이 보이게 됩니다. 장고는 사이트 관리자가 컨텐츠를 제공할 수 있게 통합된 인터페이스를 만듦으로써 문제를 해결합니다. 관리자는 사이트의 단순 방문자를 위한 것이 아니라 관리자를 위한 것입니다. admin 사용자를 생성합니다. 먼저 관리자 사이트에 로그인하기 위한 유저를 생성합니다. 아래의 커맨드를 입..
장고(Django) API와 놀기. 이제, 상호작용 가능한 파이썬 쉘에 들어가서 장고의 API와 함께 놀아봅시다. 파이썬 쉘을 불러오기 위해선 아래 커맨드를 써야합니다 : $ python3 manage.py shell "python3"를 사용하는 대신에 manage.py를 입력하는 이유는 DJANGO_SETTINGS_MODULE 환경변수를 설정하기 위해서입니다. 장고의 파이썬 import path를 여러분의 chem/settings.py 파일에 알려주는 셈이죠. 데이터베이스 API를 한번 탐색해 보도록 합시다 : >>> from polls.models import Choice, Question # Import the model classes we just wrote. # No questions are in the system yet. >>..
장고(Django) 모델을 활성화 하는 법 약간의 모델 코드는 장고에게 큰 정보를 주는 셈입니다. 모델 코드와 함께라면, 장고는 이런 걸 할 수 있어요 : 이 앱을 위해 데이터베이스 스키마(CREATE TABLE 구문)를 만드는 것. 질문과 선택 오브젝트에 접근하기 위한 파이썬 데이터베이스 접근 API를 만듭니다. 철학 장고의 앱은 "pluggable"입니다 : 앱을 여러 프로젝트에 사용하거나 앱을 나눌 수 있고 장고 설치에 연관되지 않았기 때문에 앱을 배포할 수도 있습니다. 앱을 프로젝트에 포함하기 위해서는 INSTALLED_APPS 설정안의 configuration 클래스를 레퍼런스에 추가해야 합니다. polls/apps.py 파일 안에 PollsConfig 클래스가 있기 때문에 dotted path로는 'polls.apps.PollsConf..
장고(Django) 모델 만들기. 이제 저만의 모델을 선언할 거에요. - 추가적인 메타데이터가 있는 데이터베이스 레이아웃이 필수적입니다. 철학 모델은 데이터에 대한 단일, 선언적인 소스입니다. 제가 데이터를 저장하는 동작과 필수적인 필드를 포함합니다. 장고는 DRY 원칙(Don't Repeat Yourself)을 따릅니다. 모델의 목표는 데이터 모델을 한 곳에서 정의하고 정의한 곳으로부터 데이터 모델을 파생시키는 것입니다. migrations도 그 중 하나입니다 - Ruby On Rails와 다르게 migrations는 제 모델 파일에서 파생됩니다. 본질적으로 장고가 현재 모델과 일치하도록 데이터베이스 스키마를 업데이트하기 위해 찾아갈 수 있는 기록입니다. 아까 만들었던 간단한 투표 앱에서, 2019/10/11 - [노력/웹 개발] - ..
장고(Django) 데이터베이스 설정 이제 chem/settings.py를 엽니다. 일반적인 파이썬 모듈로 장고 설정을 대표하는 모듈 레벨 변수가 있습니다. 기본적으로는, SQLite를 사용하도록 설정돼있습니다. 데이터베이스를 잘 모르거나 장고에 관심만 있는 수준이라면, 가장 쉬운 설정입니다. SQLite는 파이썬에 포함돼 있으므로, 다른 설정을 할 필요가 전혀 없습니다. 실제 프로젝트를 할 때에는 맞지 않는 데이터베이스입니다. 다른 데이터베이스를 사용하고 싶다면, 적절한 데이터베이스 연결을 다운로드 받고 DATABASES 'default' 키를 내가 사용하는 데이터베이스에 맞게 설정해 주어야 합니다 : ENGINE - 'django.db.backends.sqlite3', 'django.db.backends.postgresql', 'djan..
장고(Django) 첫번째 뷰 쓰기. 첫 번째 뷰를 써봅시다. polls/view.py 파일을 열어서 아래 코드를 넣으세요. # polls/views.py from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.") 이게 장고에서 가장 간단하게 뷰를 만드는 방법입니다. 이제 이 뷰를 불러오기 위해서 URL 매핑을 해야합니다. URL 설정을 하기 위해 polls 디렉토리에 urls.py 파일을 만들어줍니다. polls/urls.py에 아래 코드를 입력합니다: # polls/urls.py from django.urls import path from . import views urlpatter..