- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
apibrėžti WSGIHandler(aplin, pradžia_atsakymas):
globalinis prašymas
globalinis atsakymas
prašymas.įpareigoti(aplin)
atsakymas.įpareigoti()
bandyti:
prižiūrėtojas, argi = rungtynės_url(prašymas.kelias, prašymas.metodas)
jei not prižiūrėtojas:
kelti HTTPKlaida(404, "Nerastas")
produkcija = prižiūrėtojas(**argi)
išskyrus BreakButelio kaip antsparnis:
produkcija = antsparnis.produkcija
išskyrus Exception kaip išimtis:
atsakymas.statusas = getattr(išimtis, 'http_statusas', 500)
klaidaprižiūrėtojas = KLAIDA_HANDLER.get(atsakymas.statusas, klaida_nutylėjimą)
bandyti:
produkcija = klaidaprižiūrėtojas(išimtis)
išskyrus:
produkcija = "Išimtis per klaidos prižiūrėtojas! Prašymas sustabdyti."
jei atsakymas.statusas == 500:
prašymas._aplin['wsgi.errors'].write("Error (500) on '%s': %s\n" % (prašymas.kelias, išimtis))
db.uždaryti()
jei turiatrib(produkcija, 'read'):
failąišvesties = produkcija
jei 'wsgi.file_wrapper' iš aplin:
produkcija = aplin['wsgi.file_wrapper'](failąišvesties)
kitas:
produkcija = iter(lambda: failąišvesties.read(8192), '')
kijei isinstance(produkcija, stg):
produkcija = [produkcija.encode()]
dėl c iš atsakymas.SLAPUKAI.values():
atsakymas.antraštė.papildyti('Set-Cookie', c.OutputString())
statusas = '%d %s' % (atsakymas.statusas, HTTP_KODAI[atsakymas.statusas])
pradžia_atsakymas(statusas, sąrašas(atsakymas.antraštė.daiktai()))
sugrįžti produkcija