Werkzeug: рд╕реЙрдХреЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ werkzeug.serving рдореЗрдВ рдЧрд▓рдд рдзрд╛рд░рдгрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдордИ 2016  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/werkzeug

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕реЙрдХреЗрдЯ.рд╕реЗрдВрдб () рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ

рдФрд░ рдпрд╣ рдкрдВрдХреНрддрд┐:
https://github.com/pallets/werkzeug/blob/03faf0569861e9d8c8c94785ad5560f735ba72da/werkzeug/serving.py#L165
рдЧреАрд╡реЗрдВрдЯ рдФрд░ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╡реЗрдмрд╕реНрдХреЗрд▓ рддрдХрдиреАрдХ рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд, рдЬрд┐рд╕реЗ рдбреЙрдХрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдиреЗ рдореБрдЭреЗ рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЫреЛрдЯрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: 3

рдпрд╣ рд╕реЙрдХреЗрдЯ рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рд╕реЙрдХреЗрдЯрд┐рдпреЛ рдХреЛ рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдкрд╛рдЗрдерди 3.5 рдореЗрдВ рдЗрд╕ рдмрдЧ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реЙрдХреЗрдЯ рдХреЛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдореЛрдб рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП settimeout )ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рдпрдерди 3 рдореЗрдВ рдПрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ: рдореБрджреНрджрд╛ 24291 ред рд╕рдорд╕реНрдпрд╛ рдкрд╛рдпрдерди 3.6 рдореЗрдВ рддрдп рдХреА рдЧрдИ рд╣реИ (рджреЗрдЦреЗрдВ рдореБрджреНрджрд╛26721 )

рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдЕрдиреНрдп рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ wfile рдХреЛ io.BufferedWriter рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.5 рдореЗрдВ CPython рдХреЗ wsgiref рдореЗрдВ ) рдпрд╛ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wbufsize рдХреЛ рдмрджрд▓рдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ gevent рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВ)

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╡реЗрд░реНрдХрдЬрд╝реЗрдЧ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЧреИрд░-рд╡рд░реНрдХрдЬрд╝реНрдпреВрдЧ рдореБрджреНрджрд╛ рдорд╛рдирддрд╛ рд╣реИред

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЬрдмрдХрд┐ рдЖрдк рд╢рд╛рдпрдж рд╕рд╣реА рд╣реИрдВ (рдХреЛрдИ рд╢реЛрдз рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ), рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Werkzeug рдХрд╛ рд╕рд░реНрд╡рд░ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕реЗ рдбреЙрдХрд░ рдФрд░ рдЧреАрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рд╕реЗ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреЛрдб рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреАрд╡реЗрдВрдЯ рдмрдВрджрд░рдкреИрдЪ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд╛рдлреА рд╣рдж рддрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рдиреЛрдЯрд┐рд╕ рднреА рдирд╣реАрдВ рдХрд░рддрд╛ рдЕрдЧрд░ рдпрд╣ рдбреЛрдиреНрдЯрдкреИрдирд┐рдХ рдирд╣реАрдВ рддреЛрдбрд╝рддрд╛: 3

рдореИрдВрдиреЗ рдкрд╛рдЗрдерди 3.5 рдореЗрдВ рдЗрд╕ рдмрдЧ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реЙрдХреЗрдЯ рдХреЛ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдореЛрдб рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП settimeout )ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рдпрдерди 3 рдореЗрдВ рдПрдХ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ: рдореБрджреНрджрд╛ 24291 ред рд╕рдорд╕реНрдпрд╛ рдкрд╛рдпрдерди 3.6 рдореЗрдВ рддрдп рдХреА рдЧрдИ рд╣реИ (рджреЗрдЦреЗрдВ рдореБрджреНрджрд╛26721 )

рдПрдХ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдЕрдиреНрдп рд╡реЗрдм рд╕рд░реНрд╡рд░реЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╡рд╣ рд╣реИ wfile рдХреЛ io.BufferedWriter рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.5 рдореЗрдВ CPython рдХреЗ wsgiref рдореЗрдВ ) рдпрд╛ рдмрдлрд░рд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wbufsize рдХреЛ рдмрджрд▓рдирд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ gevent рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВ)

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╡реЗрд░реНрдХрдЬрд╝реЗрдЧ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рднреА рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рдЧреИрд░-рд╡рд░реНрдХрдЬрд╝реНрдпреВрдЧ рдореБрджреНрджрд╛ рдорд╛рдирддрд╛ рд╣реИред

рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╛ рддреЛ рдПрдХ рдЧреАрд╡реЗрдВрдЯ рдмрдЧ рдпрд╛ рдПрдХ рд╕реНрдЯрдбрд▓рд┐рдм рдмрдЧ рд╣реИ, Werkzeug рдПрдХ рдХрдерд┐рдд рдмрдлрд╝рд░ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд░рд╛рдЗрдЯ + рдлреНрд▓рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдм рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рд╛рджреЗ рдЕрдЬрдЧрд░ рдкрд░ рднреА рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдХреЗрд╡рд▓ рдСрди рдЧреЗрд╡реЗрдВрдЯ

@RonnyPfannschmidt рд╣рд╛рдБ, рдореИрдВ рдЗрд╕реЗ gevent рдХреЗ рдмрд┐рдирд╛ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдмрд╕ рд╡рд░реНрдХрдЬрд╝реЗрдЧ рдХреЗ WSGIRequestHandler рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ рдПрдХ рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рд╕реЙрдХреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЧреАрд╡реЗрдВрдЯ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдПрдХ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдерд╛ рдЬреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗ рдкрд╛рдЗрдерди 3.5 рдореЗрдВ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдмрдЧ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ :-)

рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдпрд╣ рд╣реЛрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рдпрдерди 3.5 рдореЗрдВ рддрдп рд╣реИ (3.4 рдорд╛рд░реНрдЪ рдореЗрдВ рдИрдУрдПрд▓ рдЬрд╛рддрд╛ рд╣реИ), рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

asottile picture asottile  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

abathur picture abathur  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lepture picture lepture  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

caiz picture caiz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

taion picture taion  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ