рдореЗрдЧрд╛-рдлреНрд▓рд╛рд╕реНрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓, рднрд╛рдЧ 1: "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!"

рдпрд╣ рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рдлреНрд▓рд╛рд╕реНрдХ рдорд╛рдЗрдХреНрд░реЛрдлреНрд░рд╛рдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рдпрдерди рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░реВрдВрдЧрд╛ред

рдпрд╣рд╛рдБ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд╕рднреА рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:
рднрд╛рдЧ 1: рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!
рднрд╛рдЧ 2: рдЯреЗрдореНрдкрд▓реЗрдЯ
рднрд╛рдЧ 3: рдкреНрд░рдкрддреНрд░
рднрд╛рдЧ 4: рдбреЗрдЯрд╛рдмреЗрд╕
рднрд╛рдЧ 5: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЙрдЧрд┐рди
рднрд╛рдЧ 6: рдкреНрд░реЛрдлрд╛рдЗрд▓ рдкреЗрдЬ рдФрд░ рдЕрд╡рддрд╛рд░
рднрд╛рдЧ 7: рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг
рднрд╛рдЧ 8: рдЕрдиреБрдпрд╛рдпреА, рд╕рдВрдкрд░реНрдХ рдФрд░ рдорд┐рддреНрд░
рднрд╛рдЧ 9: рдЕрдВрдХреБрд░рдг
рднрд╛рдЧ 10: рдкреВрд░реНрдг рдкрд╛рда рдЦреЛрдЬ
рднрд╛рдЧ 11: рдИрдореЗрд▓ рд╕рдорд░реНрдерди
рднрд╛рдЧ 12: рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг
рднрд╛рдЧ 13: рддрд┐рдерд┐ рдФрд░ рд╕рдордп
рднрд╛рдЧ 14: I18n рдФрд░ L10n
рднрд╛рдЧ 15: рдЕрдЬрд╛рдХреНрд╕
рднрд╛рдЧ 16: рдбрд┐рдмрдЧрд┐рдВрдЧ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкреНрд░реЛрдлрд╛рдЗрд▓рд┐рдВрдЧ
рднрд╛рдЧ 17: рд▓рд┐рдирдХреНрд╕ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рднреА рддреИрдирд╛рдд рд╣реИрдВ!)
рднрд╛рдЧ 18: рд╣рд░реЛрдХреВ рдХреНрд▓рд╛рдЙрдб рдкрд░ рддреИрдирд╛рддреА

рдореЗрд░реА рдкреГрд╖реНрдарднреВрдорд┐


рдореИрдВ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЬрдЯрд┐рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ-рдЕрдВрдХреЛрдВ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдЕрдиреБрднрд╡ рд╡рд╛рд▓рд╛ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд╛рдо рдкрд░ C ++ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдпрдерди рд╕реЗ рдореБрд▓рд╛рдХрд╛рдд рдХреАред рдкрд╛рдпрдерди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ PHP, рд░реВрдмреА, рд╕реНрдореЙрд▓рдЯрд╛рдХ рдореЗрдВ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦреЗ рдФрд░, рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВ рдХрд┐ рдпрд╣ C ++ рдореЗрдВ рднреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕ рд╕рдм рд╕реЗ, рдореБрдЭреЗ рдкрд╛рдпрдерди / рдлреНрд▓рд╛рд╕реНрдХ рд╕рдВрдпреЛрдЬрди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЖрд╡реЗрджрди


рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВ рдЬрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдорд╛рдЗрдХреНрд░реЛрдмреНрд▓реЙрдЧ рд╕рд░реНрд╡рд░ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдорд╛рдЗрдХреНрд░реЛрдмреНрд▓реЙрдЧ рдХрд╣рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╕реБрдВрджрд░ рд░рдЪрдирд╛рддреНрдордХ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИред

рд╣рдорд╛рд░реА рдкреНрд░рдЧрддрд┐ рдХреЗ рджреМрд░рд╛рди, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╖рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реВрдВрдЧрд╛:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдореИрдВ рдпрд╣ рд╕рдм рдХрд╛рдлреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдЬрдм рдореИрдВ рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд▓реВрдВрдЧрд╛, рддреЛ рдЕрдиреНрдп рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреИрд╕рд╛ рдХреБрдЫ рдмрди рдЬрд╛рдПрдЧрд╛ред

рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ


рдпрджрд┐ рдЖрдкрдХрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд╛рдпрдерди 2.6 / 2.7 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореИрдиреБрдЕрд▓ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдВрдбреЛрдЬ, рдУрдПрд╕ рдПрдХреНрд╕ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рдкрд╛рдпрдерди рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рднрд╛рд╖рд╛ рдХреЗ рдореЙрдбреНрдпреВрд▓ рдФрд░ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рднреА рдЪреЛрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдлреНрд▓рд╛рд╕реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдареАрдХ рд╣реИ, рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!
рдпрджрд┐ рдЖрдкрдиреЗ рдЕрднреА рддрдХ рдкрд╛рдпрдерди 2.7 рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдпрд╣рд╛рдВ рд╕реЗ рд▓реЗ рдЬрд╛рдПрдВред

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

рдЗрд╕рд▓рд┐рдП, рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ, рдЙрд╕ рдЬрдЧрд╣ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рд╣реЛрдЧрд╛, рдФрд░ рдПрдХ рдирдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдирд┐рд╣рд┐рдд рд╣реЛрдЧрд╛ред рдЖрдЗрдП рдЗрд╕ microblog рдлреЛрд▓реНрдбрд░ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, virtualenv.py рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирдП рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред

рдирдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░реЗрдВ:
 python virtualenv.py flask 

рдпрд╣ рдХрдорд╛рдВрдб flask рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдкреВрд░реНрдг рдкрд╛рдпрдерди рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдЧрд╛

рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рд╕рдХреНрд░рд┐рдп рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдХреНрд░рд┐рдп рд╡рд╛рддрд╛рд╡рд░рдг рдЕрдкрдиреЗ bin рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдкрде рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдкрде рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЖрдк рдЕрдЬрдЧрд░ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдорд┐рд▓рддрд╛ рд╣реИ, рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдирд╣реАрдВред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдХрднреА рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХрд┐рд╕реА рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдХрднреА рднреА рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд┐рдпрд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЙрд╕ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдлреЛрди рдХрд┐рдпрд╛ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдП рдерд╛, рдЗрд╕рдХреЗ рдкрде рдХреЛ рдореБрджреНрд░рд┐рдд рдХрд░рдирд╛ред

рд▓рдЧрднрдЧред рдкреНрд░рддрд┐ред: рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдиреМрд╡реЗрдВ рднрд╛рдЧ рдореЗрдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдлреНрд▓рд╛рд╕реНрдХ-рд╣реВрд╢реЗрд▓рдЪреЗрдореА рдореЗрдВ рдПрдХ рдмрдЧ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреА рд╣реИ, рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдпрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд▓реЗрдЦрдХ рднрдВрдбрд╛рд░)

рдпрджрд┐ рдЖрдк рдПрдХ Linux, OS x, рдпрд╛ Cygwin рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рддреЛ рдПрдХ-рдПрдХ рдХрд░рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рдХреЗ рдлреНрд▓рд╛рд╕реНрдХ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
рдЯреАрдо рд╕реВрдЪреА
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдлреНрд▓рд╛рд╕реНрдХ == 0.9
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рд▓реЙрдЧрд┐рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рдУрдкрдирд┐рдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рдореЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк sqlalchemy == 0.7.9 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ- sqlalchemy == 0.16 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк sqlalchemy-migrate рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рдЬреЛрд╢рд▓реНрдХреЗрдореА == 0.54a рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдлреНрд▓рд╛рд╕реНрдХ-рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл == 0.8.4
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд pytz == 2013 рдмреА
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдлреНрд▓рд╛рд╕реНрдХ-рдмреЗрдмрд▓ == 0.8
 рдлреНрд▓рд╛рд╕реНрдХ / рдмрд┐рди / рдкрд╛рдЗрдк рдлреНрд▓реЙрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдпрджрд┐ рдЖрдк рдПрдХ Windows рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рддреЛ рдХрдорд╛рдВрдб рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рд╣реИрдВ:
рдЯреАрдо рд╕реВрдЪреА
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдлреНрд▓рд╛рд╕реНрдХ == 0.9
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрдЯ / рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд рдлреНрд▓рд╛рд╕реНрдХ-рд▓реЙрдЧрд┐рди
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рдУрдкрдирд┐рдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд┐рдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ sqlalchemy == 0.7.9
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ- sqlalchemy == 0.16 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк sqlalchemy- рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рдЬреЛрд╢рд▓реНрдХреЗрдореА == 0.54a рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ- wtf == 0.8.4 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ \ Scripts \ pip рд╕реНрдерд╛рдкрд┐рдд pytz == 2013 рдмреА
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк рдлреНрд▓рд╛рд╕реНрдХ-рдмрд╛рдмреЗрд▓ == 0.8 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
 рдлреНрд▓рд╛рд╕реНрдХ \ рд╕реНрдХреНрд░рд┐рдкреНрд╕ \ рдкрд╛рдЗрдк рдлреНрд▓реЙрдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдпреЗ рдХрдорд╛рдВрдб рдЙрди рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдо рдлреНрд▓рд╛рд╕реНрдХ 0.9 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВред рдлреНрд▓рд╛рд╕реНрдХ 0.10 рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЖрд╕рдкрд╛рд╕ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреБрдЫ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИрдВред рдкреИрдХреЗрдЬ рдФрд░ pip рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмреАрдЪ рдХрдИ рдЕрд╕рдВрдЧрддрддрд╛рдПрдВ рднреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рдВрдбреЛрдЬ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдФрд░ рдХрджрдо рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдПрдХ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рдкрд╛рдардХ рдзреНрдпрд╛рди рджреЗрдЧрд╛ рдХрд┐ flask-mail рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреА рд╕реВрдЪреА рд╕реЗ рдЧрд╛рдпрдм рд╣реИред рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдПрдВрдЧреЗ:
 flask\Scripts\pip install --no-deps lamson chardet flask-mail 


рдореИрдВ рд╡рд┐рд╡рд░рдг рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдлреНрд▓рд╛рд╕реНрдХ-рдореЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝реЗрдВред

рдпрджрд┐ рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреА рд╕реНрдерд╛рдкрдирд╛ рд╕рдлрд▓ рд░рд╣реА, рддреЛ рдЖрдк virtualenv.py рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

"рдирдорд╕реНрддреЗ рд╡рд┐рд╢реНрд╡!" рдлреНрд▓рд╛рд╕реНрдХ рдореЗрдВ


рдЕрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдкрдХреЗ microblog рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ flask рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпрд╛ рдФрд░ рдлреНрд▓рд╛рд╕реНрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рд╣рдорд╛рд░реА рдкрд╣рд▓реА рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ!

microblog рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдВ:

 mkdir app mkdir app/static mkdir app/templates mkdir tmp 


рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ app рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦреЗрдВрдЧреЗред static рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╕реНрдЯреИрдЯрд┐рдХреНрд╕, рдЬреИрд╕реЗ рдЪрд┐рддреНрд░реЛрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рд╕реНрдЯрд╛рдЗрд▓ рд╢реАрдЯреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред templates рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред

рдЖрдЗрдП рд╣рдорд╛рд░реЗ app рдкреИрдХреЗрдЬ ( app/__init__.py ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдХрд░ рд╢реБрд░реВ рдХрд░реЗрдВ

 from flask import Flask app = Flask(__name__) from app import views 


рдКрдкрд░ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╕ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ ( Flask рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА) рдмрдирд╛рддреА рд╣реИ, рдлрд┐рд░ рд╡реНрдпреВ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдЕрднреА рддрдХ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИред

рджреГрд╢реНрдп рд╣реИрдВрдбрд▓рд░ рд╣реИрдВ рдЬреЛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддреЗ рд╣реИрдВред рдлреНрд▓рд╛рд╕реНрдХ рдореЗрдВ рджреГрд╢реНрдп рдкрд╛рдпрдерди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ URL рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рдореИрдк рдХрд░рддрд╛ рд╣реИред

рд╣рдо рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рд╡реНрдпреВ рдлрдВрдХреНрд╢рди (рдлрд╝рд╛рдЗрд▓ app/views.py ) рд▓рд┐рдЦреЗрдВрдЧреЗ

 from app import app @app.route('/') @app.route('/index') def index(): return "Hello, World!" 


рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗрддрд╛ рд╣реИред рджреЛ route рд╕рдЬреНрдЬрд╛рдХрд╛рд░ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди route рдкрддреЗ / рдФрд░ /index рдХреЛ route ред

рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рдЪрд░рдг рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП run.py рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА ( microblog/ ) рдореЗрдВ рдбрд╛рд▓реЗрдВ:

 #!flask/bin/python from app import app app.run(debug = True) 


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╕ рд╣рдорд╛рд░реЗ app рдкреИрдХреЗрдЬ рд╕реЗ app рд╡реИрд░рд┐рдПрдмрд▓ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП run рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ app рд╡реЗрд░рд┐рдПрдмрд▓ Flask рдХреНрд▓рд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рд╣рдордиреЗ рдЗрд╕реЗ рдКрдкрд░ рдмрдирд╛рдпрд╛ рд╣реИред

рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдВред OS X, Linux, рдФрд░ Cygwin рдкрд░, рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

 chmod a+x run.py 


рдлрд┐рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдмрд╕ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

 ./run.py 


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

 flask/Scripts/python run.py 


рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ 5000 рдкрд░ рд╕реБрдиреЗрдЧрд╛, рдХрдиреЗрдХреНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓реЗрдВ рдФрд░ рдкрддрд╛ рдмрд╛рд░ рдореЗрдВ рдирд┐рдореНрди URL рджрд░реНрдЬ рдХрд░реЗрдВ:



рдпрд╛ рдЖрдк рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 http://localhost:5000/index 


рдЕрдм рдХреНрдпрд╛ рдЖрдк рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рд░реВрдЯрд┐рдВрдЧ рджреЗрдЦрддреЗ рд╣реИрдВ? рдкрд╣рд▓рд╛ URL / рд╕реЗ рдмрдБрдзрд╛ рд╣реИ, рдЬрдмрдХрд┐ рджреВрд╕рд░рд╛ /index ред рджреЛрдиреЛрдВ рдорд╛рд░реНрдЧ рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡реЗ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╛рд░реНрдЧ рд╕реЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рдпреЗ рджреЛрдиреЛрдВ рд╣реА рдкреНрд░рд╕реНрддреБрддрд┐ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдереЗред

рдЬрдм рдЖрдк рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл Ctrl-C рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдЖрдк рдореЗрдВ рд╕реЗ рдЬреЛ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВ, рд╡реЗ рдЗрд╕ рдЧрд╛рдЗрдб рд╕реЗ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдорд╛рдЗрдХреНрд░реЛрдмреНрд▓реЙрдЧ-0.1 . zip рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдлреНрд▓рд╛рд╕реНрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ



рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо HTML рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЫреЛрдЯреЗ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдорд┐рдЧреБрдПрд▓

Source: https://habr.com/ru/post/In193242/


All Articles