рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ, рдкреЗрд╕реНрдЯ, рдкрд╛рдЗрд▓рдиреНрд╕ - рдПрдбрд╡рд╛рдВрд╕реНрдб рд╡реЗрдм рдЯреЗрдХреНрдиреЛрд▓реЙрдЬреАрдЬ

рдЕрдЬрдЧрд░ рд▓реЛрдЧреЛ

рдПрдХ рднреА рд░реЗрд▓ рдирд╣реАрдВ!


Sm.org рд╕реЗ рдмреЛрд▓реА ред

Habr├й рдкрд░ WSGI рдХреЗ рд╡рд┐рд╖рдп рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рд░рдХреНрд╖рд░рддрд╛ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдпрд╣ рдореЗрд░реА рд░рд╛рдп, рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдореЗрдВ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдФрд░ рдЙрд╕реА рд╕рдордп рдореИрдВ рдкреЗрд╕реНрдЯ рдФрд░ рд╕рд░рдкрдЯ - рдкрд╛рдЗрд▓рдиреНрд╕ рдкрд░ рд╕реНрдкрд░реНрд╢ рдХрд░реВрдВрдЧрд╛ред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдмрд╛рддреЗрдВ рдкрд╣рд▓реЗред

WSGI



рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ (рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЧреЗрдЯрд╡реЗ рдЗрдВрдЯрд░рдлреЗрд╕) - рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рдЙрд╕ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред WSGI рдкрд╛рдпрдерди рдорд╛рдирдХ рд╣реИ рдФрд░ PEP 333 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдпреБрд╡рд╛ рддрдХрдиреАрдХ рд╣реИред рдлрд┐рд▓рд┐рдк рдЬреЗред рдХреЗ рджрд┐рдорд╛рдЧ рдХреА рдЙрдкрдЬ, рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╛рдпрдерди рд╡реЗрдм рдХрдВрдЯреЗрдирд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

рдЗрдВрдЯрд░рдлрд╝реЗрд╕, 7 рджрд┐рд╕рдВрдмрд░ 2003 рдХреЛ рдкрд╛рдпрдерди рд╡реЗрдм-рдПрд╕рдЖрдИрдЬреА рдореЗрдВ рдкреАрдИрдкреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рдЕрдЧрд╕реНрдд 2004 рдореЗрдВ рдЗрд╕реЗ рдЕрдкрдирд╛ рдЖрдзреБрдирд┐рдХ рдирд╛рдо рдорд┐рд▓рд╛ рдФрд░ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдпрд╛рддреНрд░рд╛ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдФрд░ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рдЖрдзреБрдирд┐рдХ рд╡рд┐рд╡рд┐рдзрддрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдШрдмрд░рд╛рдПрдЧреАред рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрднрд╡реА рдПрдХ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЗ рдмрд╣реБрдд рдЕрд╕рдВрдЧрдд рдФрд░ рдЕрдХреНрд╖рдо рд╣реИрдВред рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рджреВрд╕рд░реЗ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЕрдХреНрд╕рд░ рдПрдХ рдмрдбрд╝рд╛ рд╕рд┐рд░рджрд░реНрдж рдмрди рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдХреАрдХреГрдд рдорд╛рдирдХреЛрдВ рдХрд╛ рдЙрджреНрднрд╡ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдХрджрдо рд╣реИред

WSGI рд╡реЗрдм рд╕рд░реНрд╡рд░ рдФрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдлреЗрд╕ (рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкрд░рдд) рд╣реИред рдЗрд╕рд▓рд┐рдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрдХреНрд╖ рдкрд░, рдпрд╣ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рдХреА рддрд░рдл, рдпрд╣ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИред рд╡рд╣ рдХрд╣рддреА рд╣реИ рдХрд┐ WSGI рдХреЗ рддрд╣рдд рд▓рд┐рдЦреА рдЧрдИ рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХрд╣рдирд╛ рд╣реИ, Apache рдХреЗ рддрд╣рдд mod_python рдкрд░ рдпрд╛ FastCGI рдХреА рддрд░рд╣ рдХрд╣реАрдВ рдФрд░ред рдФрд░ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЪрдпрдирд┐рдд рдмрдВрдбрд▓ рдореЗрдВ рдПрдкреАрдЖрдИ рдпрд╛ рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╣реАрдВ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред



рдирдорд╕реНрддреЗ рджреБрдирд┐рдпрд╛!



рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрд╣реБрдд рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ (WSGI- рд╕рдВрдЧрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг):

  <b> def </ b> рдРрдк (environ, start_response):
   start_response (<span style = "color: # 693"> '200 OK' </ span>, [(<span style = "color: # 693"> 'Content-Type' </ span>, <span style = " рд░рдВрдЧ: # 693 "> 'рдкрд╛рда / рд╕рд╛рджрд╛' </ рдЕрд╡рдзрд┐>)])
   рд╡рд╛рдкрд╕реА [<рд╕реНрдкреИрди рд╢реИрд▓реА = "рд░рдВрдЧ: # 693"> 'рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб! \ n' </ рд╕реНрдкреИрди>] 


рдЗрд╕рдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╣реИред





рдкреЗрд╕реНрдЯ рдЦреЗрд▓рдиреЗ рдореЗрдВ рдЖрддрд╛ рд╣реИ



рдХреЛрдб рдХреА 3 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдЕрднреА рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ



  <b> рдЕрдЧрд░ </ b> __name__ == <span style = "color: # 693"> '__ main__' </ span>:
   <b> рд╕реЗ </ b> рдкреЗрд╕реНрдЯ <b> рдЖрдпрд╛рдд </ b> httpserver
   httpserver.erve (рдРрдк, рд╣реЛрд╕реНрдЯ = <span style = "color: # 693"> '127.0.0.1' </ span>, port = <span style = "color: # 693"> '8080' </ span>) 


рдкреЗрд╕реНрдЯ рдПрдХ рдореЗрдЯрд╛рдлрд╝реНрд░реЗрдо, рдПрдХ рд╡реЗрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред

рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ:



рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ, рдмрджрд▓реЗ рдореЗрдВ, рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ



рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╣рдордиреЗ Paste рдореЗрдВ рдирд┐рд░реНрдорд┐рдд HTTP рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдирдХ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдЪреАрдЬ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реВрдмреА рдСрди рд░реЗрд▓реНрд╕ рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреЗрд╕реНрдЯ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬреЗрдВ рднреА рд╣реЛрддреА рд╣реИрдВ ред рдЙрдирдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдФрд░ рдмрд╣реБрддрд╛рдпрдд рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдПрдХ рдореЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╕реНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрдкрд╕рд░реНрдЧ рдореЗрдЯрд╛ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ, рдФрд░ рдЧреНрд░реАрдХ ╬╝ met (рдмрд╛рдж, рдкреАрдЫреЗ, рдмреАрдЪ) рд╕реЗ рдЖрддрд╛ рд╣реИред



рдЕрд╡рдзрд╛рд░рдгрд╛: рдЖрд╡реЗрджрди рдвреЗрд░



WSGI рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рдЕрдЧрд░ WSGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдЖрдк рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреА рдкреНрд░реА-рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдпреВрдЬрд░ рдХреЛ рд░рд┐рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдХреАрдЬ рдореЗрдВ рд╕реЗрд╢рди рдЖрдИрдбреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реБрдП), рджреВрд╕рд░реЗ WSGI рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдмрд╛рдж рдХрд╛ рд░рд┐рдЬрд▓реНрдЯ рд▓реМрдЯрд╛рдПрдВ? рдпрд╣ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреЛрдЬрдирд╛ рдХреЛ рд▓рдЧрднрдЧ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред рдФрд░ рдЕрдЧрд░ рдкрд╣рд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдиреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП XSL рд░реВрдкрд╛рдВрддрд░рдг рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ?

рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛ рдЖрддреА рд╣реИред рдЗрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдкрд╣рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рдкрд░рдд, рдпрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╕рднреА рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреА рд╕рдордЧреНрд░рддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреИрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреА рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдмрд╣реБрдд рд╣реА рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЛ рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ WSGI рдЖрдзрд╛рд░ рдкрд░ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдКрдкрд░ рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рднреБрд▓рд╛рдП рдмрд┐рдирд╛)ред



рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк SQLAlchemy - "рдкрд╛рдпрдерди SQL рдЯреВрд▓рдХрд┐рдЯ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд░рд┐рд▓реЗрд╢рдирд▓ рдореИрдкрд░ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ SQL рдХреА рдкреВрд░реНрдг рд╢рдХреНрддрд┐ рдФрд░ рд▓рдЪреАрд▓рд╛рдкрди рджреЗрддрд╛ рд╣реИ", AuthKit - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдФрд░ рд▓рдЪреАрд▓рд╛ рдврд╛рдВрдЪрд╛, рдФрд░ рдЕрдзрд┐рдХ, рдЗрд╕реЗ рджреЗрдЦреЗрдВ ред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ - рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдЙрдлрд╝" рдФрд░ "рдУрд╣-рдУрд╣-рдУрд╣" рдкрдиреНрдиреЛрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рдбрд▓рд╡реЗрдпрд░ред рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдкреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреИрд╕реЗ рдЧреИрд░-рд╡реАрдмреА рднрд╛рдЧреЛрдВ рдХреЗ рднреА рдорд┐рдбрд▓рд╡реЗрдпрд░ рдореЗрдВ рд░реИрдкрд┐рдВрдЧ рдХреЛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд░рд▓, рд╕реНрдкрд╖реНрдЯ рдФрд░ рдмрд┐рдирд╛ рд╢рд░реНрдд рд▓рдЪреАрд▓реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред



рд╕рднреА рд╕рд╛рде рдФрд░ рдХреБрдЫ рдЕрдзрд┐рдХ - рддреЛрд░рдг



рддреЛ, WSGI рдПрдХ рдмрд╣реБрдкрд░рдд рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкреЗрд╕реНрдЯ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ - рдкрд░реАрдХреНрд╖рдг, рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдирд╛, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рд╕рдВрдХреЗрддрдХ (рдЕрдкрд▓реЛрдб рдкреНрд░рдЧрддрд┐ рдореЙрдирд┐рдЯрд░)ред рдПрд╕рдХреНрдпреВрдПрд▓ рдХреА рдПрдХ рднреА рд▓рд╛рдЗрди рдХреЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдзрд┐рдХрд░рдг, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдКрдкрд░ рджрд┐рдП рдЧрдП рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдм рдпрд╣рд╛рдБ рд░реВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдорд╛рд░реНрдЧ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, AJAX рдХрд╛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб WebHelpers рд╣реИ (рджреЛрдиреЛрдВ рдШрдЯрдХ RoR рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ), Mako рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╣реИрдВ, рдЕрджреНрд╡рд┐рддреАрдп рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЧрддрд┐ рдХреЗ рд╕рд╛рде, рдпреВрдирд┐рдХреЛрдб рдФрд░ I18N рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рд╣рдо рдпрд╣ рд╕рдм рдПрдХ рдкреВрд░реНрдгрд░реВрдкреЗрдг рдореЙрдбрд▓-рд╡реНрдпреВ рдореЗрдВ рдПрдХ рд╕рд╛рде рд░рдЦреЗрдВрдЧреЗред рдирд┐рдпрдВрддреНрд░рдХ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдкрд╛рдЗрд▓рдиреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ - рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдиреНрдирдд WSGI- рд╕рдВрдЧрдд рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ, рдЬрд┐рд╕рдиреЗ рдкрд╛рдпрдерди, рдЖрд░рдУрдЖрд░ рдФрд░ рдЕрдиреНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рд╕рднреА рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реИ ред

рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдФрд░ рдЖрд▓реЛрдЪрдирд╛ рдореЗрдВ, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпреЗ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдмрд╣реБрдд рдпреБрд╡рд╛ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Pylons рд╡рд╛рдкрд╕ рд╕рдВрд╕реНрдХрд░рдг 0.9.5 рдореЗрдВ, рдФрд░ AuthKit рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╣реИ рдФрд░ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдлрд┐рд░ рднреА, рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдХрд┐ WSGI рд╣реЛрдирд╣рд╛рд░ рд╣реИ, рдФрд░ рдкреЗрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЕрдиреНрдп рдПрдХ рд▓рдЧрднрдЧ рдкреВрд░реНрдг (рдпрд╛ рд╡рд┐рд╣рд┐рдд) рд╡реЗрдм рдврд╛рдВрдЪрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдЖрдк TurboGears , CherryPy , Django рдФрд░ рдЕрдиреНрдп рдЪреМрдЦрдЯреЗ рдореЗрдВ WSGI рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреЗрд╢рдХ, рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЙрджреНрджреЗрд╢реНрдп рдХреА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдЗрд▓реЛрдВрд╕ рдФрд░ Django рдХреЗ рддрд╣рдд рдПрдХ рд╣реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рд╕реЗ рдореБрдЭреЗ рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдкрд╛рдЗрд▓реЛрдВрд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╕реАрдЦрдирд╛ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред



рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛






All Articles