2012-06-22 6 views
2

필자는 셸을 사용하여 물건을 탐색 할 수 있기 때문에 파이썬을 정말 좋아합니다.장고 디버깅을 위해 showPythonShell을 사용할 수 있습니까?

django 앱을 개발하는 동안 동일한 작업을 수행 할 수 있습니까?

내 말은

, 그것을 할 수 있습니다 :

def process_request(request): 
    ... 
    if(request.FILES != none): 
     __builtins__.debug_request = request 
     showPythonShell(); 
    ... 

그래서 요청을 실험 할 수 있습니까?

감사합니다 : D 이것은 파이썬 디버거를 사용하여 수행 할 수 있습니다

+0

다음과 같이하십시오. manage.py shell? https://docs.djangoproject.com/ko/1.4/topics/testing/#module-django.test.client – monkut

+0

@monkut 음, 예 !!! 그러나 나는 또한 클라이언트로부터의 실제 http 요청을 받고 파이썬 쉘로 나가서 요청에 대해 탐색 할 수 있기를 원한다. – user269334

+0

중단 점 (http://v3.mike.tig.as/blog/2010/09/14/pdb/)을 찾으십니까? – arie

답변

3

ipython를 설치하고 함께 showPythonShell() 대체 if 문. ipython 쉘을 사용하면 얻을 수있는 이점은 리뷰 완료시 탭 완성, 마법 기능 등입니다. here. 나는 파이썬에서 꽤 오랫동안 개발 해왔고 이것은 주로 장고를 포함하여 어떤 것을 디버깅 할 때 사용하는 방법이다.

3

: pdb

또는 ipdb 더 나은 당신에게 탭 완성, 및 기타 IPython 기능을 강조 구문을 제공합니다.

if(request.FILES != none): 
    import ipdb; ipdb.set_trace() 

줄에 도달하면 요청을 검사 할 수있는 디버깅 셸로 이동합니다. 모든 available commands에 대한 pdb 문서를 확인하십시오. 여기

정말 좋은 블로그 게시물의 모든 세부 사항을 설명한다 : 당신이 예를 기대하는 것은 내에서 ipython 쉘을 시작

from IPython import embed; embed(); 

이 정확하게 수행합니다 http://aymanh.com/python-debugging-techniques

관련 문제