рдореИрдВ
рдорд╛рд░реНрд╕ рд░реЛрд╡рд░ рдХреА рдЕрдЧрд▓реА рдмрд╛рдЗрдХ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЕрдЬрдЧрд░ WEB2PP рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЕрджреНрднреБрдд рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ Habr├й рдкрд░ рдХреЛрдИ рд▓реЗрдЦ рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рд╣реИрдмреНрд░реИрдЯ рдХреЗ рддрд╣рдд web2py рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИред
рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЕрдзреНрдпрдпрди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ, рдореИрдВ рдХрдИ рдЧрдВрднреАрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рдЙрдирдХреА рдмрд┐рдХреНрд░реА рд╕реЗ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ ... рдФрд░ рдореБрдЭреЗ рдЙрдирдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдФрд░ рд╢реЛрдзрди рд╕реЗ рдЖрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд╣реИред рдЗрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдиреЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдФрд░ ... рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИред
рдкреГрд╖реНрдарднреВрдорд┐ рдРрд╕реА рд╣реИ рдХрд┐ рдПрдХ рджрд┐рди рдПрдХ рджреЛрд╕реНрдд рдиреЗ рдореБрдЭреЗ рдлреЛрди рдХрд┐рдпрд╛, рдПрдХ рдХрд╛рд░ рдЪреМрдХреА (рдЖрдо рд▓реЛрдЧреЛрдВ, "рд░реАрддрд┐-рд░рд┐рд╡рд╛рдЬреЛрдВ") рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреА "рдХрдард┐рдирд╛рдЗрдпреЛрдВ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдФрд░ рдкреВрдЫрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рд╡рд╛рд╣рдиреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ "рд╕рд░рд▓" рдХрд╛рд░реНрдпрдХреНрд░рдо рдвреВрдВрдв / рдСрдлрд░ / рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВ? рд╕реАрдорд╛ рд╢реБрд▓реНрдХ рдкреЛрд╕реНрдЯ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВред рдЙрдирдХреА рднреНрд░рдорд┐рдд рдХрд╣рд╛рдиреА рд╕реЗ, рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдмреБрдирд┐рдпрд╛рджреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛:
- рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХрдо рд╕реЗ рдХрдо 50 рдпреБрдЧрдкрдд рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдХрд┐рд╕реА рднреА рдХрдВрдкреНрдпреВрдЯрд░ рдкрд╛рд░реНрдХ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдиреНрдпреВрдирддрдо рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдФрд░ рдЕрдиреНрдп рдЗрд╢рд╛рд░реЗ, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХрд╣реАрдВ рднреА "рдЪрдордХ" рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ
- рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рд╣рди рдХреЗ рд╕реАрдорд╛ рд╢реБрд▓реНрдХ рдирд┐рдХрд╛рд╕реА рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рджрд┐рд╢рд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
- рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╛рддрдЪреАрдд рдХреЛ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрд╛рджреВ рд╡рд╛рдХреНрдпрд╛рдВрд╢ "рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдирд╛ рдкреИрд╕рд╛ рдЪрд╛рд╣рд┐рдП - рд╣рдо рднреБрдЧрддрд╛рди рдХрд░реЗрдВрдЧреЗ" рдиреЗ рдЪрд╛рд▓ рдЪрд▓реА рдФрд░ рдореИрдВрдиреЗ рдХрд╣рд╛, "рдЙрд╣, рдареАрдХ рд╣реИ," рдореИрдВрдиреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддрд▓рд╛рд╢ рд╢реБрд░реВ рдХрд░ рджреАред
рдореЗрд░рд╛ рддрд░реНрдХ рд╕рд░рд▓ рдерд╛:
рдореЗрд░реА рдкрд╕рдВрджреАрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреНрдпрд╛ рд╣реИ?
рдХрд┐рд╕реА рднреА рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдП?
- рдПрдХ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВред рд╕рднреА рдХреЗ рдкрд╛рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╣реИрдВ!
рдкреЛрд╕реНрдЯ рдкрд░ рд╕реАрдорд╛ рд╢реБрд▓реНрдХ рдирд┐рдпрдореЛрдВ рдХреЗ рдкреНрд░рддрд┐рдмрдВрдз рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдЬрд╛рдПрдВ рдФрд░ рдореМрдЬреВрджрд╛ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░реЗрдВ?
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╕рд░реНрд╡рд░ (рдпрд╣ рдЖрдзрд╛рд░ рд╣реИ) рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛
- рдПрдХ рд╕рд░реНрд╡рд░ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдХреБрдЫ рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рд╕рднреНрдп рд╕реНрдЯреЗрд╢рди
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓рдиреЗ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдЬрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджрд┐рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рдЖрдзрд╛рд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ?
- рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЖрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдзрд┐рдорд╛рдирддрдГ рдЗрд╕рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреБрдЫ рдЬрдЯрд┐рд▓ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛
рдпрд╣ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп, рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдЖрд╕рд╛рдиреА рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдпрд╛ред рдЬрд╡рд╛рдм web2py рд╣реИред рдЙрд╕ рд╕рдордп, рдореБрдЭреЗ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЗрдЪреНрдЫрд╛ рдФрд░ рд╕рдВрдпрдо рд╣реИ, рддреЛ рдХреБрдЫ рднреА рдЕрд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ! рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЕрдкрдиреА рддрд╛рдХрдд рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ
рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ , рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ , рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдЕрдирдкреИрдХ рдХрд░реЗрдВ - рдФрд░ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИ! рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЬреАрдд рдХреЗ рд▓рд┐рдП
web2py.exe рд╣реИ , osx рдХреЗ рд▓рд┐рдП
web2py.app , рдФрд░ рдЖрдк рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
python web2py.py ред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ рдкрд╛рд╕рд╡рд░реНрдб, рдЖрдИрдкреА рдФрд░ рдкреЛрд░реНрдЯ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 8000) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЖрдИрдкреА: рдкреЛрд░реНрдЯред
рддреИрдпрд╛рд░ рд╕реНрд╡рд╛рдЧрдд рдпреЛрдЧреНрдп рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред

ADMINISTRATIVE INTERFACE рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдкрд░ рдкрд╣реБрдБрдЪрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ рдЖрдк рд╕рд╛рдЗрдЯреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

APPLICATIONS рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╛рдЗрдЯреЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдПрдХ рдирдИ рд╕рд╛рдЗрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рд╕рд╛рдЗрдЯ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рдирдИ рд╕рд╛рдЗрдЯ рдХреЛ INIT рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
http://192.168.0.2:8000 ред рдпрджрд┐ рдЖрдк рдХреБрдЫ рдЕрдиреНрдп рд╕рд╛рдЗрдЯ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрд╕рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
http://192.168.0.2:8000/ncome ред
рдпрд╣ рд╕рдордЭрдирд╛ рдХрд┐ web2py рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрди рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдореЙрдбрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ db.py рдлрд╝рд╛рдЗрд▓ рд╣реИ
- рдХрдВрдЯреНрд░реЛрд▓рд░ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдбрд┐рдлрд╛рд▓реНрдЯ рдУрд░рд▓ рдлрд╛рдЗрд▓ рд╣реИ
- рджреГрд╢реНрдп / рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ HTML рдлрд╛рдЗрд▓реЗрдВ рджреЗрдЦреА рдЬрд╛рддреА рд╣реИрдВ
Db.py рдореЗрдВ , рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдХрдиреЗрдХреНрд╢рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
db=DAL('sqlite://storage.db')
Default.py рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ, рд╣рдо рдЕрдЬрдЧрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣:
def index(): form = SQLFORM(db.image)
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рдЪрд╛рд░реЛрдВ / рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
{{extend 'layout.html'}}
рдпрд╣рд╛рдБ рдЗрди рд╕рд░рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ!
Sqlite3 рдбреЗрдЯрд╛рдмреЗрд╕ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ; рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЖрдкрдХреЛ PostgreSQL, MySQL, MSSQL, FireBird, Oracle, IBM DB2, Informix, Ingres, рдФрд░ Google App Engine рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдХреЛрдИ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдлреНрд░реЗрдорд╡рд░реНрдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд
рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдиреБрднрд╛рдЧ рд╣реИ! рд╕рднреА рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВред рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдЕрдкрдиреЗ Google рд╕рдореВрд╣ web2py- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рд╣реИрдВ (рд╡реИрд╕реЗ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕реНрддрд░ рдФрд░ рдЧрддрд┐ рдХрднреА-рдХрднреА рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реЛрддреА рд╣реИ!)ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХрд╛ рдПрдХ рдЧрд╣рд░рд╛ рдФрд░ рд╕рд╛рд░реНрдердХ рдкрдврд╝рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗ, рдФрд░ рд▓рдЧрднрдЧ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдереА рдЬрд┐рд╕реЗ рд╣рдордиреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЬреЛрд░ рд╕реЗ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдмрд╕ USB рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдореЗрдВ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХреА, рдЬрд┐рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдерд╛ рдФрд░ рдмреИрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдирд╛ рдерд╛ред рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рд▓реЛрдЧреЛрдВ рдиреЗ рд╕реНрд╡рдпрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреАрд╕реА рд╕реНрдЯреЗрд╢рди рдХреЛ рдЦрд░реАрджрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЛрдЧреЛрдВ рдиреЗ рд╕рдордЭ рдкрдХрдбрд╝реА рдФрд░ рдкрддрд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдИрдкреА рдкрддреЗ рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ / рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдХреИрд╕реЗ рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЗ рдкрддреЗ рдкрд░ рдЬрд╛рдПрдВред рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рд╣реЛрдЧрд╛ред
рдЕрдм рдореИрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рджреЛ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдзреВрд▓ рдЙрдбрд╝рд╛рдиреЗ рдХреЛ рдЫреЛрдбрд╝рдХрд░), рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рдФрд╕рддрди, рдПрдХ рд╕рд╛рде рдХрдиреЗрдХреНрд╢рди рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдЧрднрдЧ 50 рд╣реИ, рдХреЛрдИ рд░рдЦрд░рдЦрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рд░ рдХреЛрдИ рдЦреБрд╢ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдХреМрд╢рд▓ рдХреЛ "рдкрдВрдк" рдХрд┐рдпрд╛, рдЕрдЬрдЧрд░ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕реАрдЦрдирд╛; рд╕рдВрдЪрд╛рд░ рдФрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдкрддреНрд░рд╛рдЪрд╛рд░ рдХрд╛ рдЕрдиреБрднрд╡; рдЕрдВрдд рдореЗрдВ рдкреИрд╕рд╛ рдмрдирд╛рдпрд╛ред рдЕрдЧрд░ рд╕рдлрд▓рддрд╛ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдФрд░ рдЬреНрдЮрд╛рди рдХреА рдирд┐рд░рдВрддрд░ рдкреНрдпрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддреА рддреЛ рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрдХ рдФрд░ рдЖрджреЗрд╢ рдорд┐рд▓рд╛, рдлрд┐рд░ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ ...
рдкреБрдирд╢реНрдЪ
рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд╣реИрдмреЗ рдкрд░ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╢реБрд░реБрдЖрддреА рд╡рд┐рд╖рдп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ web2py рдХреЛ рд╕рдорд░реНрдкрд┐рдд рд╣реИ!
рдкреА рдкреА рдПрд╕
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд╣рдо рдореЗрдВ рд╕реЗ рдХрдИ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред Habr├й рдкрд░ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реАрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рд╖рдп рд╣реИрдВ,
рдкреНрд░рд╛рдВрдЧрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдСрди-рд▓рд╛рдЗрди рдкрд╛рдареНрдпрдХреНрд░рдо (рдореИрдВ рддреАрд╕рд░рд╛ рдХреЛрд░реНрд╕
рдкрд╛рд╕ рдХрд░ рд░рд╣рд╛
рд╣реВрдВ , рджреЛ рдФрд░ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ), рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрддреНрддреЗрдЬрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ! рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рджреНрд╡рд╛рд░рд╛ рд╕рддреНрдпрд╛рдкрд┐рддред