рдПрдХ рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рдЖрдЬ рд╣рдо рдЖрдкрдХреЛ рд╣реИрдХрд░реНрди рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреАрд▓рдХрд╡рд┐ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдПрдХ
рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ b2b рдФрд░ b2c рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд▓рдЧреА рд╣реБрдИ рд╣реИ, рдФрд░ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИред
рдлреНрд░реЗрдорд╡рд░реНрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╛рдзрд╛рди рдкреЗрд╢ рдХрд░рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддреЗ рд╣реИрдВред рд╡реЗ рд╕рдордп рдХреА рдмрдЪрдд рдХрд░рддреЗ рд╣реБрдП, рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбреЗрд╡рд▓рдкрд░ рдЖрд╡реЗрджрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдкрд░, рдЬрд╣рд╛рдВ рд░рдЪрдирд╛рддреНрдордХ рд╕реЛрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ: рд╕реНрдХреНрд░реИрдЪ рд╣реИрдВрдб-рдСрди рдХреЛрд░реНрд╕ рд╕реЗ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░ ред
рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ: "рд╣реИрдмрд░" рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП - "рд╣реИрдмрд░" рдкреНрд░рдЪрд╛рд░рдХ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдХреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп 10,000 рд░реВрдмрд▓ рдХреА рдЫреВрдЯред
рдпрд╣ рд▓реЗрдЦ рджрд╕ рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдкреЗрд╢реЗрд╡рд░реЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред 2018 рдореЗрдВ, рдкреБрд░рд╛рдиреЗ рдврд╛рдВрдЪреЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП, рдирдП рдЙрдкрдХрд░рдг рджрд┐рдЦрд╛рдИ рджрд┐рдП рдЬреЛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ ...
рдЬрдм рдЖрдк рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдЪреБрдирдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдХрд╛рд░ рдФрд░ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдЬреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдмрдбрд╝реА рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ, рддреЛ рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдпрд╛ рд╕реЗрд╡рд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдорд╛рдЗрдХреНрд░реЛрдлрд╝реНрд░реЗрдо рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдХреБрдЫ рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рджреА рдЧрдИ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдВрддрд┐рдо рдирд┐рд░реНрдгрдп, рдЖрдкрдХреЛ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рд╕реЗрд╡рд╛ рдпрд╛ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлреБрд▓-рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ
Django
Django рдПрдХ рдлреНрд░реА рдУрдкрди-рд╕реЛрд░реНрд╕ рдлреБрд▓-рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХрд▓ рдкреИрдХреЗрдЬ рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд╛рдирдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, URL рд░реВрдЯрд┐рдВрдЧ, рдбреЗрдЯрд╛ рд╕реНрдХреАрдо рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЗрддреНрдпрд╛рджрд┐ рдЬреИрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИрдВред
Django ORM рдХрд╛ рдЙрдкрдпреЛрдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдЯреЗрдмрд▓ рдкрд░ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╣реА рдХреЛрдб рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рджреВрд╕рд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬрд╛рдирд╛ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рдо рдмрди рдЬрд╛рддрд╛ рд╣реИред Django рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ PostgreSQL, MySQL, SQLite рдФрд░ Oracle рд╣реИрдВред рдЖрдк рджреВрд╕рд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд┐рд░рд╛рдорд┐рдб
рдкрд┐рд░рд╛рдорд┐рдб рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдиреНрдпреВрдирддрдо рд╕рдордп рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХрддрдо рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдмрдбрд╝реЗ рдФрд░ рдЫреЛрдЯреЗ рджреЛрдиреЛрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред рдЕрд▓рдЧ-рдЕрд▓рдЧ, рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд┐рд░рд╛рдорд┐рдб рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:
TurboGears
TurboGears рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛-рд╕реНрд░реЛрдд рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рддреЗрдЬреА рд╕реЗ рдбреЗрдЯрд╛-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред TurboGears рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдФрд░ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рд▓рдЪреАрд▓реЗ ORM рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред
рдврд╛рдВрдЪреЗ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдп:
- рд╡рд┐рднрд┐рдиреНрди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
- SQLObject рдФрд░ SQLAlchemy рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди;
- FormEncode рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди;
- рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рддреЛрд░рдг;
- рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгред
web2py
рдФрд░ рдпрд╣ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдУрдкрди-рд╕реЛрд░реНрд╕ рдлреБрд▓-рд╕реНрдЯреИрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рдпрдерди 3 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди Web2py рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ IDEwhich рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ: рдЗрд╕рдореЗрдВ рдПрдХ рдХреЛрдб рд╕рдВрдкрд╛рджрдХ, рдбреАрдмрдЧрд░ рдФрд░ рдПрдХ-рдХреНрд▓рд┐рдХ рдкрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реИред рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рд▓рд╛рдпрдХ рд╣реИ:
- рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХрдореА;
- Windows, Mac, Google App Engine, Amazon EC2, рдФрд░ рдкрд╛рдпрдерди 2.5-2.7 рдпрд╛ Java + рдкрд╛рдпрдерди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВ;
- рд╡рд┐рднрд┐рдиреНрди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ;
- рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдЪреНрдЪ рд╕реНрддрд░;
- рддреНрд░реБрдЯрд┐ рдЯреНрд░реИрдХрд░;
- рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛, рдЬреЛ рдЖрдкрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
microframework
рдХреБрдкреНрдкреА
рдпрд╣ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрдлреНрд░рд╛рдорд╡рд░реНрдХ рд╣реИ рдЬреЛ рдмреАрдПрд╕рдбреА рдХреЗ рддрд╣рдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рд╣реИред рдЗрд╕рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рд┐рдирд╛рддреНрд░рд╛ рд░реВрдмреА рдврд╛рдВрдЪреЗ рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдереЗред рдпрд╣
Werkzeug WSGI рдЯреВрд▓рдХрд┐рдЯ рдФрд░
Jinja2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
рдлреНрд▓рд╛рд╕реНрдХ рдореЗрдВ рдПрдХ рдореЙрдбреНрдпреВрд▓рд░ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ:
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд░реНрд╡рд░ рдФрд░ рдбреАрдмрдЧрд░;
- рдЬрд┐рдирдЬрд╛ реи рдЦрд╛рдХрд╛
- рд╕реБрд░рдХреНрд╖рд┐рдд рдХреБрдХреАрдЬрд╝ рдХрд╛ рд╕рдорд░реНрдерди;
- рдбрдмреНрд▓реНрдпреВрдПрд╕рдЬреАрдЖрдИ 1.0;
- рдпреВрдирд┐рдХреЛрдб;
- рдХрд┐рд╕реА рднреА ORM рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реВрдкрд░реЗрдЦрд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЪреБрдирдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдмреЛрддрд▓
рдПрдХ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдлреНрд░рд╛рдорд╡рд░реНрдХ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдмреЛрддрд▓ рдПрдХ рдПрдХрд▓ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рд╣реИред рдЙрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдирдЦрд░реЗ рдХреЗ рд╕рд╛рде рдиреГрддреНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред"
рдЗрд╕рдХреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ, рдЯреЗрдореНрдкреНрд▓реЗрдЯ, рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА WSGI рдЕрдореВрд░реНрдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рд░реВрдЯрд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдХреЙрд▓ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕реНрд╡рдЪреНрдЫ рдФрд░ рдЧрддрд┐рд╢реАрд▓ URL рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдЯреЗрдореНрдкреНрд▓реЗрдЯ - рдХрдИ рдЙрдкрдпреЛрдЧреА рдЙрдкрдХрд░рдг рдЬреЛ рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде mako, jinja2 рдФрд░ рдЪреАрддрд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред
- рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ - рдбреЗрдЯрд╛ рддрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкрд╣реБрдВрдЪ, рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓реЗрдВ, рдХреБрдХреАрдЬрд╝, рд╣реЗрдбрд░ рдФрд░ HTTP рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рдореЗрдЯрд╛рдбреЗрдЯрд╛ред
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд HTTP рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕рд░реНрд╡рд░, рдЬреЛ рдХрд╛рд░реНрдп рдореЗрдВ fapws3, bernern, GAE, CherryPy рдФрд░ WSGI рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рдЕрдиреНрдп HTTP рд╕рд░реНрд╡рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдФрд░ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдирд╛ред
CherryPy
рдЪреЗрд░реАрдкреА рдПрдХ рдиреНрдпреВрдирддрд░, рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╡реЗрдм рдврд╛рдВрдЪрд╛ рд╣реИред рдпрд╣ рдкрд╛рдпрдерди рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЪреЗрд░реАрдкреА-рдмреЗрд╕реНрдб рд╡реЗрдм рдПрдкреНрд▓реАрдХреЗрд╢рди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рдкрд╛рдпрдерди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдЪреЗрд░реА рдХреЗ рдЖрд╡реЗрджрди рдХрд┐рд╕реА рднреА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдЬреЛ рдкрд╛рдпрдерди (рд╡рд┐рдВрдбреЛрдЬ, рдореИрдХрдУрдПрд╕, рд▓рд┐рдирдХреНрд╕, рдЖрджрд┐) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡реЗ рдХрд┐рд╕реА рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдирд┐рдпрдорд┐рдд рдкрд╛рдпрдерди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдкрдХреЛ CherryPy рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП Apache рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдк Apache рдореЗрдВ CherryPy рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрд╕реА рддрд░рд╣ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рд▓рд╛рдЗрдЯрдЯреИрдк рдпрд╛ IIS рдореЗрдВред
рдЪреЗрд░реАрдкреА рдЖрдкрдХреЛ рдкреИрдЯрд░реНрдирд┐рдВрдЧ, рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд▓реЗрдЦ, рд╕реНрдЯреИрдЯрд┐рдХреНрд╕, рдХреБрдХреАрдЬ, рдЕрдкрд▓реЛрдб рдлрд╛рдЗрд▓реЗрдВ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЗрдВ рдЬреЛ рдЕрдиреНрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреЛ рднреА рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЙрдирдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖рдорддрд╛рдПрдВ:
- рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ HTTP рд╕рд░реНрд╡рд░ рдХрд╛ рд╕рд░рд▓ рд▓реЙрдиреНрдЪ
- рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рдгрд╛рд▓реА;
- рд▓рдЪреАрд▓рд╛ рдкреНрд▓рдЧрдЗрди рдкреНрд░рдгрд╛рд▓реА;
- "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ: рдХреИрд╢рд┐рдВрдЧ, рдбрд┐рдХреЛрдбрд┐рдВрдЧ, рд╕рддреНрд░, рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА, рдЖрджрд┐;
- рдкрд╛рдпрдерди 2.7+, рдкрд╛рдпрдерди 3.1+, PyPy, Jython рдФрд░ Android рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдкрд░реЗрдЦрд╛
SanicSanic рдПрдХ рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕реЗ uvloop рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрд╣ рдкрд╛рдпрдерди 3.5+ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред Sanic рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЕрдиреБрд░реЛрдз рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ Python 3.5 async / рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХреА рдЧрддрд┐ рдХреЛ рдмрд╣реБрдд рдмрдврд╝рд╛ рджреЗрддрд╛ рд╣реИред
рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ, 100 рдХрдиреЗрдХреНрд╢рди рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, Sanic рдиреЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 33,342 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рджрд┐рдЦрд╛рдИред
рдмрд╡рдВрдбрд░
рдмрд╡рдВрдбрд░ рдПрдХ рдкрд╛рдпрдерди рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдпрд╣ рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рдиреЗрдЯрд╡рд░реНрдХ I / O рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ C10k рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ 10,000+ рд╕рдорд╡рд░реНрддреА рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ)ред
рдпрд╣ рд╕рдм рдЗрд╕реЗ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЙрдкрдХрд░рдг рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╣рдЬрд╛рд░реЛрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдореБрдЦреНрдп рд▓рд╛рдн:
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдорд░реНрдерди
- рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рд╕реЗрд╡рд╛рдПрдВ;
- рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рджрд░реНрд╢рди;
- рдкрд╛рдпрдерди рд╡реЗрдм рдЯреЗрдореНрдкрд▓реЗрдЯ рднрд╛рд╖рд╛
- рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз HTTP рдХреНрд▓рд╛рдЗрдВрдЯ
- рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди (Google OpenID / OAuth, Facebook рд▓реЙрдЧрд┐рди, Yahoo BBAuth, FriendFeed OpenID / OAuth, Twitter OAuth);
- рдЕрдиреБрд╡рд╛рдж рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
рдмреЛрдирд╕
рдкрд╛рдиреА рдХрд╛ рдЫреАрдВрдЯрд╛
рдбреИрд╢ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд╛рдпрдерди рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реИрдВ рдЬреЛ рдлреНрд▓рд╛рд╕реНрдХ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ HTTP рдкрд░ JSON рдкреИрдХреЗрдЯ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ React.js рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдШрдЯрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдбреИрд╢ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рд░реВрдкрд░реЗрдЦрд╛рдПрдВ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЕрдиреВрдареЗ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЪреБрдирд╛рд╡ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд░реНрдгрдп рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ: