debugging - pai-plznw4me/django-initializer GitHub Wiki
Django debugging
λλ²κΉ μ λ§€μ° μ€μνλ€. μ΄μ λ μλ¬ λ°μμ κ²½νκ³Ό μ§κ΄μ μμ‘΄νμ§ μκ³ μλ¬κ° λ°μν μμΈμ λ³μ μμ± λλ λ‘μ§μ νλνλ νμ ν΄ κ°λ©΄μ μ νν νμ ν μ μκΈ° λλ¬Έμ΄λ€. ν΄λΉ ν¬μ€νΈμμλ μ΄λ»κ² django μμ λλ²κΉ μ νλμ§ μ€λͺ νλ€.
1. Pycharm
file
app μ views.py μ μ€ννλ€κ³ κ°μ ν΄λ³΄μ.
def index(request):
files = File.objects.all()
return HttpResponse(200)
μμμ μ μν files
λ³μμ μλ μ 보λ₯Ό λλ²κΉ
μ ν΅ν΄ μκ³ μΆλ€κ³ νμ.
μλ 3κ°μ§ λ°©μμ ν΅ν΄ λλ²κΉ μ ν μ μλ€.
-
μλ² λ―Έμ€ν λλ²κΉ
-
μλ² μ€ν λμ λλ²κΉ
-
ν μ€νΈλ₯Ό νμ©ν λλ²κΉ
1.1 μλ² λ―Έμ€ν λλ²κΉ
- μΌλ° shell μμλ django db λ° django library μ μ κ·Όμ΄ λΆκ°λ₯νλ€.
μ κ·Ό μ
django.core.exceptions.ImproperlyConfigured
ν΄λΉ μλ¬κ° λ°μνλ€. μ κ·Ό νκ³ μΆλ€λ©΄ μλ μμ μ€νν΄μΌνλ€.
python manage.py shell
- ν΄λΉ μμ μ μν΄ python μ½λλ₯Ό μ λ ₯νλκ²μ΄ μλλΌ λ°λ‘ python μ½λλ₯Ό μ λ ₯νκ³ μ νλ€λ©΄ μλ μ΅μ μ μ£Όλ©΄ λλ€.
python manage.py shell -c "print("helloworld")"
- μ μ§μμ μμ©νλ©΄ λλ²κΉ μ ν¨μ¨μ μΌλ‘ ν μ μλ€.
views.py λ΄ index()
μ μ€ννλ€κ³ κ°μ ν΄λ³΄μ. (λλΆλΆμ μ€ν μ½λλ views.py μ μ μλμ΄ μλ€.)
Step1.
main()
μ μ€ννκ³ μ νλ ν¨μ λ±λ‘νκΈ°
...
if __name__ == '__main__':
index() # <-- μ€ννκ³ μ νλ ν¨μ
Step 2. Pycharm Config
- pycharm μ€μ νκΈ°
- ν΄λΉ λλ²κ·Έμ λ¨μ μ λΈλΌμ°μ Έμμ μ 곡νλ request μ νμΈ ν μ μλ€λ μ μ΄ μλ€.
- κ°λ¨νκ² pilot test μ λλ²κΉ μ μ¬μ©νλ©΄ μ’λ€
1.2 server debugging
- μ€μ λ‘ μλ²λ₯Ό μ€ννμ¬ λλ²κΉ νλ€.
- url μ request μ 보λΈλ€. μλνλ ν¨μμ breakpoint κ° κ±Έλ €μλ€λ©΄ debugging μ΄ λλκ±Έ νμΈ ν μ μλ€.