Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Django

From ZeroWiki
Revision as of 05:31, 7 February 2021 by imported>Unknown
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

django 는 ?

  • [1]
  • Python 환경에서 웹을 쉽게 개발할수 있도록 도와주는 Framework
  • 개발이 끝나고 실제로 서비스할 경우에는 apache + mod_python 으로 올려야 한다.

의견

  • 대안언어 축제 튜토리얼 실습을 따라서 해본 결과 이것을 익히면 되게 효율이 높아질것 같다.
  • html 이 있는 template 에 많은 것을 바라지 말자. 가능하면 view에서 데이터를 거의다 처리해서 template에 넘기는것이 좋다. template에서 받아온 데어터로 리스트와 맵 변수의 첨자(subscriber)로 사용하려고 했는데 안된다. 이러한 경우에는 view에서 데이터를 아예 가공해서 넘기는 것이 좋다.

DB 연결

  • pysqlite를 사용하면 아래 첫번째 튜토리얼 처럼 하면 된다.
  • mysql 은 사용자를 생성하고 settings.py 파일을 설정한다. 그리고 pysqlite와 다른 점은 DB 이름을 넣고 나서 mysql 들어가서 따로 DB를 만들어 줘야 한다. 그리고 사용자도 만들어 줘야 한다.
  • syncdb 해도 admin 에서 추가한 것이 보이지 않을때는 runserver 한거를 중지 시키고 다시 서버를 시작 하면 보인다.
  • pysqlite다운로드
  • 각Linux별설치

apache2, mod_python을 이용한 웹 서버 설정

설정 파일 때문에 삽질하지 맙시다.

<Location "/<웹을 통해 접근할 주소>">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    PythonPath "['<프로젝트 부모폴더>'] + sys.path"
    SetEnv DJANGO_SETTINGS_MODULE <프로젝트 이름>.settings
    PythonDebug On
</Location>

예시 /path/to/project/mysite 에 settings.py 파일이 있는 경우

<Location "/mysite"> #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
</Location>

실수로

<Location "/mysite/">

라고 쓰면 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/

추천 튜토리얼

mod_python으로 동작시 admin 화면 깨짐 해결

  • 원인은 CSS 를 제대로 로드하지 못해서임.
  • settings.py 아래 부분처럼 수정
ADMIN_MEDIA_PREFIX = '/'
  • 그리고 C:\Python24\Lib\site-packages\Django-0.95-py2.4.egg\django\contrib\admin\media 에 있는 css 폴더를 docuemntRoot(www 이나 htdoc) 폴더에 복사하면 해결됨.

참고 페이지