[[TableOfContents]]
= django 는 ? =
* [http://www.djangoproject.com/]
* Python 환경에서 웹을 쉽게 개발할수 있도록 도와주는 Framework
* 개발이 끝나고 실제로 서비스할 경우에는 apache + mod_python 으로 올려야 한다.
* [http://www.djangoproject.com/documentation/modpython/] 이 페이지를 참고.
* apache에 mod_python 설치는 [apache/mod_python] 페이지 참고.
= 의견 =
* 대안언어 축제 튜토리얼 실습을 따라서 해본 결과 이것을 익히면 되게 효율이 높아질것 같다.
* html 이 있는 template 에 많은 것을 바라지 말자. 가능하면 view에서 데이터를 거의다 처리해서 template에 넘기는것이 좋다. template에서 받아온 데어터로 리스트와 맵 변수의 첨자(subscriber)로 사용하려고 했는데 안된다. 이러한 경우에는 view에서 데이터를 아예 가공해서 넘기는 것이 좋다.
= DB 연결 =
* pysqlite를 사용하면 아래 첫번째 튜토리얼 처럼 하면 된다.
* mysql 은 사용자를 생성하고 settings.py 파일을 설정한다. 그리고 pysqlite와 다른 점은 DB 이름을 넣고 나서 mysql 들어가서 따로 DB를 만들어 줘야 한다. 그리고 사용자도 만들어 줘야 한다.
* syncdb 해도 admin 에서 추가한 것이 보이지 않을때는 runserver 한거를 중지 시키고 다시 서버를 시작 하면 보인다.
* [http://linux.softpedia.com/progDownload/PySQLite-Download-6511.html pysqlite다운로드]
* [http://www.initd.org/tracker/pysqlite/wiki/PysqlitePackages 각Linux별설치]
= apache2, mod_python을 이용한 웹 서버 설정 =
설정 파일 때문에 삽질하지 맙시다.
{{{~php
">
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath "['<프로젝트 부모폴더>'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE <프로젝트 이름>.settings
PythonDebug On
}}}
[예시] /path/to/project/mysite 에 settings.py 파일이 있는 경우
{{{~php
#http://localhost/mysite
SetHandler python-program
PythonHandler django.core.handlers.modpython
PythonPath "['/path/to/project'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
}}}
실수로
{{{~php
}}}
라고 쓰면 http://localhost/mysite 는 안 되고 http://localhost/mysite/ 가 되니까 조심해야 합니다.
그래도 안 되면 다음 사이트를 참고해 봅시다.
== For Linux ==
http://www.djangoproject.com/documentation/modpython/
http://blog.timc3.com/2006/07/26/django-with-apache2/
http://www.carthage.edu/webdev/?p=14
== For Windows ==
http://thinkhole.org/wp/2006/04/03/django-on-windows-howto/
= 추천 튜토리얼 =
* [http://altlang.org/fest/EnglishStudyWithDjango 대안언어축제에서실습한장고] : 실제로 웹 개발을 따라서 해본다.
= mod_python으로 동작시 admin 화면 깨짐 해결 =
* 원인은 CSS 를 제대로 로드하지 못해서임.
* settings.py 아래 부분처럼 수정
{{{~cpp
ADMIN_MEDIA_PREFIX = '/'
}}}
* 그리고 C:\Python24\Lib\site-packages\Django-0.95-py2.4.egg\django\contrib\admin\media 에 있는 css 폴더를 docuemntRoot(www 이나 htdoc) 폴더에 복사하면 해결됨.
= 참고 페이지 =
* [http://video.google.com/videoplay?docid=-70449010942275062 구글에서Django세미나]
* [http://blog.go4teams.com/?p=56 django로블로그에비디오넣기]
* [http://www.mercurytide.com/knowledge/white-papers/django-full-text-search] : Model 의 Object 에 대한 함수들 사용방법
* [http://www2.jeffcroft.com/2006/feb/25/django-templates-the-power-of-inheritance/] : Template HTML 파일 사용법
* [http://www.b-list.org/weblog/2006/06/13/how-django-processes-request] : Template 에서의 변수 참조에 대한 설명. 필수!!, 리스트나, 맵, 함수등에 접근하는 방법
* [django/Example] - django를 이용해 만들어본 예제 시스템
* [django/Model]
* [django/ModifyingObject]
* [django/RetrievingObject]
* [django/AggregateFunction]