Size: 789
Comment:
|
Size: 9048
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
= 당신의 첫번째 장고 프로그램 만들기, part 1 = |
|
Line 4: | Line 6: |
= 당신의 첫번째 장고 application 만들기, part 1 = |
|
Line 13: | Line 13: |
Throughout this tutorial, we'll walk you through the creation of a simple Web poll application. | 이 듀토리얼을 통해서 우리는 당신에게 간단한 웹 투표 프로그램을 만드는 것을 알려줄 것이다. |
Line 15: | Line 15: |
It'll consist of two parts: | 웹 투표 프로그램은 두 부분으로 구성된다. * 사람들이 투표를 제안하고 투표의 결과를 보게 하는 공식 페이지 * 당신이 비밀리에 투표를 추가하고, 바꾸고, 삭제하는 관리자 페이지 |
Line 17: | Line 19: |
A public site that lets people vote in polls and view poll results. An admin site that lets you add, change and delete polls behind the scenes. We'll assume you have Django installed already. |
우리는 당신이 이미 장고를 설치했다고 가정한다. |
Line 21: | Line 21: |
== Initial setup == | == 초기설정 == |
Line 23: | Line 23: |
=== Database setup === | 당신이 장고를 처음 사용하는 것이라면, 당신은 몇몇 초기설정에 주의해야 한다. |
Line 25: | Line 25: |
django-admin.py startproject myproject 명령을 실행하라. 그것은 당신의 현재 디렉토리에 myproject 디렉토리를 만들 것이다. | |
Line 26: | Line 27: |
== Creating models == | (만약 당신이 setup.py를 통해 장고를 설치했다면, django-admin.py는 당신의 시스템 경로에 있을 것이다. 만약 당신의 경로가 아니라면, 당신은 site-packages/django/bin 에서 그것을 찾을 수 있다. ; /usr/local/bin처럼 당신의 경로에 어떤 장소로부터 그것의 심볼릭 링크를 고려하라.) |
Line 28: | Line 29: |
{{| '''이 코드가 어디에 있습니까?''' 당신의 배경이 [PHP]라면, 당신은 웹서버의 document root 아래 아마도 코드가 있을 것이다 (/var/www 같은 장소에). 장고와 함께, 당신은 그것을 하지 마라. 당신의 웹서버의 document root 내에 이 파이썬 코드가 약간이라도 있는 것은 좋지 않다. 왜냐하면 그것은 사람들이 웹에서 당신의 코드를 볼지도 모르는 가능성을 감수해야 하기 때문이다. 그것은 보안상 좋지 않다. 당신의 코드를 /home/mycode 같이 document root의 바깥 디렉토리에 두어라. |}} 프로젝트는 데이타베이스 구성, 장고의 특별한 옵션, 프로그램의 특별한 설정을 포함하는 장고의 실례를 위한 설정의 모음이다. {{{ myproject/ __init__.py manage.py settings.py urls.py }}} 이 파일들은 : * manage.py : 다양한 방식에서 장고 프로젝트와 상호작용하는 명령어 라인 프로그램. * settings.py : 장고 프로젝트를 위한 설정/구성 * urls.py : 장고 프로젝트를 위한 URL 선언; 당신이 만든 장고 사이트의 "목차" === 개발 서버 === 만약 당신이 가지고 있지 않다면, myproject 디렉토리로 가서, python manage.py runserver 명령을 실행하라. 당신은 명령어 라인에서 다음과 같은 출력을 보게 될 것이다. {{{ Validating models... 0 errors found. Starting server on port 8000 with settings module 'myproject.settings'. Go to http://127.0.0.1:8000/ for Django. Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows). }}} (만약 당신이 DATABASE_ENGINE에 대한 에러를 얻는다면, 정확한 데이타베이스를 찾아주기위해 DATABASE_ENGINE을 바꿔서 당신의 settings.py파일을 고치고, PostgreSql's psycopg 이나 MySql's MySqlDb 같은 설치 되어진 올바른 데이타베이스 라이브러리를 가져라.) 당신은 파이썬의 표준 라이브러리에 포함되어진 BaseHTTPServer를 만드는 장고 개발 서버, 표준이하이거나 단순한 파이썬 웹서버를 시작했다. 우리는 장고에 이런것들을 포함했다. 그래서 당신은 제작할 준비가 될때까지 구성하는 [Apache]를 처리하지 않아도 빠르게 이런것을 개발할 수 있다. 어떤것이라도 공통점이 있는 제작환경에서 이 서버를 사용하지 마라. 그것은 오직 개발하는 동안만 사용하기위해 의도된 것이다. {{| '''포트를 바꿔라''' 초기설정에 의해, runserver 명령은 포트 8000에서 개발을 시작한다. 당신이 서버의 포트를 바꾸길 원한다면, 그것을 명령어 라인 인수로서 바꿔라. {{{ python manage.py runserver 8080 }}} |}} 지금, 서버가 돌고 있는 상태에서, 당신의 웹브라우저를 통해 http://127.0.0.1:8000/ 을 방문하라. 당신은 연한 파란 색조의 산뜻한 "Welcome to Django"라는 페이지를 볼 것이다. 작업이 완료되었다! === 데이타베이스 설정 === 지금, settings.py를 고쳐라. 그것은 모듈 수준에서 다양하게 표현되어지는 장고 설정을 따르는 평범한 파이썬 모듈이다. 당신의 데이타베이스 연결 변수에 맞게 이 설정들을 바꿔라 : * DATABASE_ENGINE -- 'postgresql', 'mysql' 또는 'sqlite3'. 곧 더 나온다. * DATABASE_NAME -- 당신의 데이타베이스 이름, 만약 당신이 [Sqlite]를 사용한다면, 데이타베이스 파일의 완전한 경로 * DATABASE_USER -- 당신의 데이타베이스 유저네임 (SQLite는 사용 안한다.) * DATABASE_PASSWORD -- 당신의 데이타베이스 패스워드 (SQLite는 사용 안한다.) * DATABASE_HOST -- The host your database is on. 만약 당신의 데이타베이스 서버가 같은 물리적인 기계를 사용한다면, 이것을 빈 문자열로 남겨라 (SQLite는 사용 안한다.) {{| '''Note''' 여기에서 지정한 데이타베이스가 PostgreSQL 또는 MySQL 에 생성되어있어야 한다. 당신이 사용하는 데이타베이스의 프롬프트에서 "CREATE DATABASE database_name;" 명령어로 데이터베이스를 만들 수 있다. |}} 당신의 데이터베이스에 장고의 코어 데이타베이스 테이블을 생성하기 위해서 다음 명령을 실행하라. {{{ python manage.py init }}} 당신이 어떤 에러 메세지도 보지 못한다면, 작업이 완료 된것이다. 궁금하다면, 당신의 데이타베이스를 위한 명령행 클라이언트를 띄워서 ''\dt (PostgreSQL), SHOW TABLES; (MySQL), or .schema (SQLite)'' 같은 명령어를 입력해서 장고에 의해서 생성된 테이블들을 볼 수 있다. {{| '''이 데이터베이스 테이블들에 대해서''' manage.py init 에 의해서 생성된 테이블들은 장고가 제공하는 세션, 인증등의 기능을 위해서 필요한 것들이다. 장고의 다음 릴리즈에서는 당신이 원하지 않는다면 어떤 테이블도 생성하지 않는 init 명령어의 간단한 형식이 제공 될 것이다. |}} == 모델 만들기 == 지금, 당신의 project는 정해졌고, 작업을 할 준비가 되어있다.(당신은 다시 지루한 관리상의 도구를 신경쓰지 않아도 될 것이다.) 당신이 장고에서 쓰고 있는 각각의 프로그램은 파이썬 경로 어딘가에 있는 파이썬 패키지로 구성되고, 확실한 협정을 따른다. 장고는 프로그램의 기본적인 디렉토리 구조에서 자동으로 발생하는 유틸리티를 따른다. 그래서 당신은 창작하는 디렉토리 보다는 쓰고 있는 코드에 초점을 맞출 수 있다. {{| '''프로젝트 vs. 프로그램''' 프로젝트와 프로그램의 다른 점은 무엇인가? 프로그램은 예를 들면 웹블로그 시스템이나 공적인 기록의 데이타베이스, 간단한 투표 프로그램 같은 것들을 하는 웹 프로그램이다. 프로젝트는 시스템 구성과 특별한 웹 싸이트를 위한 프로그램의 모음이다. 프로젝트는 다수의 프로그램들을 포함할 수 있다. 프로그램은 다수의 프로젝트들 안에 존재할 수 있다. |}} 이 튜토리얼에서 우리는 간단하게 myproject 디렉토리 안에 투표 프로그램을 만들 것이다. 결과적으로, 프로그램은 프로젝트와 연결될 것이다. 말하자면, 투표 프로그램 내에 파이썬 코드는 myproject.polls를 참조할 것이다. 나중에 이 튜토리얼에서, 우리는 배포를 위해서 당신의 프로그램을 분리하는 것을 검토할 것이다. 프로그램을 만들기 위해서, myproject 디렉토리 안에서 이 명령을 쳐라. {{{ python manage.py startapp polls }}} 이와 같은 표로 polls 디렉토리를 만들 것이다. {{{ polls/ __init__.py models/ __init__.py polls.py views.py }}} 이 디렉토리 구조는 투표 프로그램을 저장할 것이다. 장고에서 데이타베이스 웹 프로그램을 작성하는 첫 번째 단계는 당신의 모델을 정의하는 것이다. -- 본래는, 추가적인 metadata와 함께 당신의 데이타베이스 설계 {{| '''원리''' 모델은 하나이고, 당신의 데이타에 대한 데이타의 명확한 소스이다. 그것은 본질적인 항목과 당신이 저장하고 있는 데이타의 상태를 포함한다. 장고는 DRY 원칙을 따른다. |
Korean translation of http://www.djangoproject.com/documentation/tutorial1
당신의 첫번째 장고 프로그램 만들기, part 1
이 문서는 Django 0.9.1을 다룬다. 구버전 : 0.90 docs
By Adrian Holovaty <holovaty@gmail.com>, Translated by [parkpro77]
예제로 배워보자.
이 듀토리얼을 통해서 우리는 당신에게 간단한 웹 투표 프로그램을 만드는 것을 알려줄 것이다.
웹 투표 프로그램은 두 부분으로 구성된다.
- 사람들이 투표를 제안하고 투표의 결과를 보게 하는 공식 페이지
- 당신이 비밀리에 투표를 추가하고, 바꾸고, 삭제하는 관리자 페이지
우리는 당신이 이미 장고를 설치했다고 가정한다.
초기설정
당신이 장고를 처음 사용하는 것이라면, 당신은 몇몇 초기설정에 주의해야 한다.
django-admin.py startproject myproject 명령을 실행하라. 그것은 당신의 현재 디렉토리에 myproject 디렉토리를 만들 것이다.
(만약 당신이 setup.py를 통해 장고를 설치했다면, django-admin.py는 당신의 시스템 경로에 있을 것이다. 만약 당신의 경로가 아니라면, 당신은 site-packages/django/bin 에서 그것을 찾을 수 있다. ; /usr/local/bin처럼 당신의 경로에 어떤 장소로부터 그것의 심볼릭 링크를 고려하라.)
{{| 이 코드가 어디에 있습니까?
당신의 배경이 [PHP]라면, 당신은 웹서버의 document root 아래 아마도 코드가 있을 것이다 (/var/www 같은 장소에). 장고와 함께, 당신은 그것을 하지 마라. 당신의 웹서버의 document root 내에 이 파이썬 코드가 약간이라도 있는 것은 좋지 않다. 왜냐하면 그것은 사람들이 웹에서 당신의 코드를 볼지도 모르는 가능성을 감수해야 하기 때문이다. 그것은 보안상 좋지 않다.
당신의 코드를 /home/mycode 같이 document root의 바깥 디렉토리에 두어라. |}}
프로젝트는 데이타베이스 구성, 장고의 특별한 옵션, 프로그램의 특별한 설정을 포함하는 장고의 실례를 위한 설정의 모음이다.
myproject/ __init__.py manage.py settings.py urls.py
이 파일들은 :
- manage.py : 다양한 방식에서 장고 프로젝트와 상호작용하는 명령어 라인 프로그램.
- settings.py : 장고 프로젝트를 위한 설정/구성
- urls.py : 장고 프로젝트를 위한 URL 선언; 당신이 만든 장고 사이트의 "목차"
개발 서버
만약 당신이 가지고 있지 않다면, myproject 디렉토리로 가서, python manage.py runserver 명령을 실행하라. 당신은 명령어 라인에서 다음과 같은 출력을 보게 될 것이다.
Validating models... 0 errors found. Starting server on port 8000 with settings module 'myproject.settings'. Go to http://127.0.0.1:8000/ for Django. Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows).
(만약 당신이 DATABASE_ENGINE에 대한 에러를 얻는다면, 정확한 데이타베이스를 찾아주기위해 DATABASE_ENGINE을 바꿔서 당신의 settings.py파일을 고치고, PostgreSql's psycopg 이나 MySql's MySqlDb 같은 설치 되어진 올바른 데이타베이스 라이브러리를 가져라.)
당신은 파이썬의 표준 라이브러리에 포함되어진 BaseHTTPServer를 만드는 장고 개발 서버, 표준이하이거나 단순한 파이썬 웹서버를 시작했다. 우리는 장고에 이런것들을 포함했다. 그래서 당신은 제작할 준비가 될때까지 구성하는 [Apache]를 처리하지 않아도 빠르게 이런것을 개발할 수 있다.
어떤것이라도 공통점이 있는 제작환경에서 이 서버를 사용하지 마라. 그것은 오직 개발하는 동안만 사용하기위해 의도된 것이다.
{{| 포트를 바꿔라
초기설정에 의해, runserver 명령은 포트 8000에서 개발을 시작한다. 당신이 서버의 포트를 바꾸길 원한다면, 그것을 명령어 라인 인수로서 바꿔라.
python manage.py runserver 8080
|}}
지금, 서버가 돌고 있는 상태에서, 당신의 웹브라우저를 통해 http://127.0.0.1:8000/ 을 방문하라. 당신은 연한 파란 색조의 산뜻한 "Welcome to Django"라는 페이지를 볼 것이다. 작업이 완료되었다!
데이타베이스 설정
지금, settings.py를 고쳐라. 그것은 모듈 수준에서 다양하게 표현되어지는 장고 설정을 따르는 평범한 파이썬 모듈이다. 당신의 데이타베이스 연결 변수에 맞게 이 설정들을 바꿔라 :
- DATABASE_ENGINE -- 'postgresql', 'mysql' 또는 'sqlite3'. 곧 더 나온다.
- DATABASE_NAME -- 당신의 데이타베이스 이름, 만약 당신이 [Sqlite]를 사용한다면, 데이타베이스 파일의 완전한 경로
- DATABASE_USER -- 당신의 데이타베이스 유저네임 (SQLite는 사용 안한다.)
- DATABASE_PASSWORD -- 당신의 데이타베이스 패스워드 (SQLite는 사용 안한다.)
- DATABASE_HOST -- The host your database is on. 만약 당신의 데이타베이스 서버가 같은 물리적인 기계를 사용한다면, 이것을 빈 문자열로 남겨라 (SQLite는 사용 안한다.)
{{| Note
여기에서 지정한 데이타베이스가 PostgreSQL 또는 MySQL 에 생성되어있어야 한다. 당신이 사용하는 데이타베이스의 프롬프트에서 "CREATE DATABASE database_name;" 명령어로 데이터베이스를 만들 수 있다. |}}
당신의 데이터베이스에 장고의 코어 데이타베이스 테이블을 생성하기 위해서 다음 명령을 실행하라.
python manage.py init
당신이 어떤 에러 메세지도 보지 못한다면, 작업이 완료 된것이다.
궁금하다면, 당신의 데이타베이스를 위한 명령행 클라이언트를 띄워서 \dt (PostgreSQL), SHOW TABLES; (MySQL), or .schema (SQLite) 같은 명령어를 입력해서 장고에 의해서 생성된 테이블들을 볼 수 있다.
{{| 이 데이터베이스 테이블들에 대해서
manage.py init 에 의해서 생성된 테이블들은 장고가 제공하는 세션, 인증등의 기능을 위해서 필요한 것들이다. 장고의 다음 릴리즈에서는 당신이 원하지 않는다면 어떤 테이블도 생성하지 않는 init 명령어의 간단한 형식이 제공 될 것이다. |}}
모델 만들기
지금, 당신의 project는 정해졌고, 작업을 할 준비가 되어있다.(당신은 다시 지루한 관리상의 도구를 신경쓰지 않아도 될 것이다.)
당신이 장고에서 쓰고 있는 각각의 프로그램은 파이썬 경로 어딘가에 있는 파이썬 패키지로 구성되고, 확실한 협정을 따른다. 장고는 프로그램의 기본적인 디렉토리 구조에서 자동으로 발생하는 유틸리티를 따른다. 그래서 당신은 창작하는 디렉토리 보다는 쓰고 있는 코드에 초점을 맞출 수 있다.
{{| 프로젝트 vs. 프로그램
프로젝트와 프로그램의 다른 점은 무엇인가? 프로그램은 예를 들면 웹블로그 시스템이나 공적인 기록의 데이타베이스, 간단한 투표 프로그램 같은 것들을 하는 웹 프로그램이다. 프로젝트는 시스템 구성과 특별한 웹 싸이트를 위한 프로그램의 모음이다. 프로젝트는 다수의 프로그램들을 포함할 수 있다. 프로그램은 다수의 프로젝트들 안에 존재할 수 있다. |}}
이 튜토리얼에서 우리는 간단하게 myproject 디렉토리 안에 투표 프로그램을 만들 것이다. 결과적으로, 프로그램은 프로젝트와 연결될 것이다. 말하자면, 투표 프로그램 내에 파이썬 코드는 myproject.polls를 참조할 것이다. 나중에 이 튜토리얼에서, 우리는 배포를 위해서 당신의 프로그램을 분리하는 것을 검토할 것이다.
프로그램을 만들기 위해서, myproject 디렉토리 안에서 이 명령을 쳐라.
python manage.py startapp polls
이와 같은 표로 polls 디렉토리를 만들 것이다.
polls/ __init__.py models/ __init__.py polls.py views.py
이 디렉토리 구조는 투표 프로그램을 저장할 것이다.
장고에서 데이타베이스 웹 프로그램을 작성하는 첫 번째 단계는 당신의 모델을 정의하는 것이다. -- 본래는, 추가적인 metadata와 함께 당신의 데이타베이스 설계
{{| 원리
모델은 하나이고, 당신의 데이타에 대한 데이타의 명확한 소스이다. 그것은 본질적인 항목과 당신이 저장하고 있는 데이타의 상태를 포함한다. 장고는 DRY 원칙을 따른다.
Activating models