
Armin Ronacher рдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп Python рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ: рдлреНрд▓рд╛рд╕реНрдХ рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Werkzeug рдХреЛ
рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ред рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрди рдкрд╛рдпрдерди 3 рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (3.3 рдФрд░ рдКрдкрд░ рд╕реЗ рд╢реБрд░реВ) рдХрд╛ рд╕рдорд░реНрдерди рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рдореНрди-рд╕реНрддрд░ рд╡рд╛рд▓реЗ рд╡рд░реНрдЬрд╝реНрдпреВрдЧ рдПрдкреАрдЖрдИ рдХреЛ рдПрдХ рддрд░рдл
рдкреАрдИрдкреА 3333 рд╕реЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░реА рддрд░рдл рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдЦреЛрдирд╛ рд╣реИред рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдЕрдЬрдЧрд░ рд╕рдВрд╕реНрдХрд░рдг 2.5 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЦреЛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк Werkzeug рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЯрд┐рдВрдХрд░ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдлреНрд▓рд╛рд╕реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХреБрдЫ рд╕рд░рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдкреАрдЖрдИ рдЬреНрдпрд╛рджрд╛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред
рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдлреНрд▓рд╛рд╕реНрдХ рдФрд░ рд╡реЗрд░реНрдХреЗрдЬрдЧ рдиреЗ рдЕрдкрдбреЗрдЯ рдореЗрдВ рдХреБрдЫ рджреЗрд░реА рдХреА, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдШрдЯрдХ рдЬреЛ рдлреНрд▓рд╛рд╕реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдирдХ рд╕реНрдЯреИрдХ рдХреЛ рдмрдирд╛рддреЗ рд╣реИрдВ: рдЬрд┐рдиреНрдЬрд╛ 2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдФрд░ SQLAlchemy ORM рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдкрд╛рдпрдерди 3 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡реИрд╕реЗ, рдПрдХ рд╕рдордп рдореЗрдВ, рдЕрд░реНрдорд┐рди
рдиреЗ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдЯреНрдЯрд░рдкрдВрдереА рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ
рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХреА , рдФрд░ рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдардВрдбреЗ рдмрд╕реНрддреЗ рдореЗрдВ рдмрд╛рдд рдХреАред
рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди
WERKZEUG
- рдЧрд┐рд░реНрдмрдм рдкрд░ рдПрдХ рдирд┐рдЬреА рдЧрд┐рд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд░реНрдХрдЬрд╝рдЧ рд╕реЗ рддреНрд░реБрдЯрд┐ рдЯреНрд░реИрдХрд┐рдВрдЧ рднреЗрдЬрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- Werkzeug HTTP рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдорд╛рдореВрд▓реА рдкрд░рд┐рд╡рд░реНрддрдиред
- рдмреЗрд╣рддрд░ IRI рд╕рдорд░реНрдерди, рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ RFCs рдХрд╛ рдереЛрдбрд╝рд╛ рдЙрд▓реНрд▓рдВрдШрдиред рдпрд╣ рдореМрдЬреВрджрд╛ рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- PEP 333 рдФрд░ PEP 3333 рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЛ рдкрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЕрдЬрдЧрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ 2 рдФрд░ 3 рдкрд░ WSGI рд╕рдорд░реНрдерди рднреА рдХрд░рддрд╛ рд╣реИред
рдХреБрдкреНрдкреА
- рдлреНрд▓рд╛рд╕реНрдХ рдиреЗ рдкрд╛рдпрдерди рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ 2 рдФрд░ 3 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ
json
рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ UUID рдпрд╛ datetime
рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреИрд╕реА рд╕рд╛рдорд╛рдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдорд╛рдВрдХрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред - рдмреЗрд╣рддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рдВрджрд░реНрдн рджреГрд╢реНрдпрддрд╛ред рдЕрдм рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗрд╡рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрджрд░реНрдн рдХреЗ рднреАрддрд░ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлреНрд▓рд╛рд╕реНрдХ.рдЬреА рдкреЙрдкрдЕрдк рд╕рдВрджрд░реНрдн рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛рд░реНрдп рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЖрдЬреАрд╡рди рдмрдВрдзреЗ рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рдеред
- рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдмреЗрд╣рддрд░ рд╕рдВрдЧрддрд┐ред
- рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ JSON рдХреНрд░рдорд╛рдВрдХрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдВрдЬреА рдХреНрд░рдо рдпрд╛ "рд╕реБрдВрджрд░ рдкреНрд░рд┐рдВрдЯ" рд╕реНрд╡рд░реВрдкрдгред
рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛: рдлреНрд▓рд╛рд╕реНрдХ - 0.10, рд╡реЗрд░реНрдХреЗрдЬрдЧ - 0.9ред
рдФрд░, рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рддреАрд╕рд░реЗ рдЕрдЬрдЧрд░ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдмрдврд╝рддреЗ рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░рдг, рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг (рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред