Czy jest łatwy sposób, aby debugować programy Pythona CGI, oprócz patrzenia na plik dziennika za każdym razem, gdy przeglądarka generuje błąd?

4
Amal Antony 31 październik 2011, 20:37

3 odpowiedzi

Najlepsza odpowiedź

Możesz użyć cgitb moduł. Jest tak prosty jak

import cgitb
cgitb.enable()

Nie zawsze działa (np. Nie pomoże Ci za błędy uprawnień, lub pewnych innych rodzajów błędów), ale kiedy to jest całkiem pomocne!

5
Ismail Badawi 31 październik 2011, 18:16

Możesz przechwycić (lub formę ręcznie) danych i zmiennych z ENV, które odbiera skrypt CGI, a następnie wyraźnie uruchomić skrypt pod ulubionym debuggerem i wywołać do niego dane.

Aby uchwycić dane przychodzące, możesz po prostu zrzucić go z skryptu w trybie CGI do niektórych plików dziennika, a następnie ponowne użycie w trybie debugera w trybie samodzielnym.

1
9000 31 październik 2011, 18:07

Jeśli chcesz mieć interaktywną sesję debugowania, gdzie można ustawić punkty przerwania, zbadać zmienne itp. Ustaw zmienną środowiskową QUERY_STRING do żądanej wartości przed wywołaniem {X1}}, a następnie wykonaj plik jako zwykły skrypt Korzystanie z twojego ulubionego debugera.

To pokazuje ogólny pomysł:

>>> import cgi
>>> import os
>>> os.environ['QUERY_STRING'] = 'name=Bob&city=Toronto&favorite=chocolate'
>>> args = cgi.FieldStorage()
>>> args.keys()
['name', 'city', 'favorite']
0
gauss256 14 grudzień 2019, 04:22