Google рдРрдк рдЗрдВрдЬрди рдкрд░ рд╕рд░рд▓ рдлрд╝рд╛рдЗрд▓ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ

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

Google рдХрд╛ Paa рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЦреЛрдЬ рд╣реИ - Google App Engine (рдЗрд╕рдХреЗ рдмрд╛рдж GAE), рдЬреЛ 5 рдЬреАрдмреА рддрдХ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ 1 рдЬреАрдмреА рдЗрдирдХрдорд┐рдВрдЧ рдФрд░ рдкреНрд░рддрд┐ рджрд┐рди 1 рдЬреАрдмреА рдХреЗ рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдЙрдЪреНрдЪ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЖрдкрдХрд╛ рдбреЗрдЯрд╛ рдПрдХ рд╕рд╛рде рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛!
рдЬреАрдПрдИ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧреИрд░-рдорд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕реЗрд╡рд╛ рдмрдирд╛рдИ, рдЬрд┐рд╕рдХреА рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛ред

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

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

рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдПрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ http://appengine.google.com рдкрд░ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдЖрд╡реЗрджрди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЧрдИ рд╣реИред рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдпрд╣ appspot.com рдХреЗ рдЙрдк-рдбреЛрдореЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рд╕рд╛рде рд╣реА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓рд╛ рдирд╛рдо рднреА рд╣реЛрдЧрд╛ред рдЕрдиреНрдп рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд╣реАрдВ рдЫреБрдЖ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЙрдирдХрд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡ рдирд╣реАрдВ рд╣реИред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ рдЬреЛ рдЖрдкрдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реЛ, рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдиреНрдпреВрдирддрдо, app.yaml рдлрд╝рд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд╛рдо, рд░рдирдЯрд╛рдЗрдо рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ URL рд╣реИрдВрдбрд▓рд░реНрд╕ рдХрд╛ рд╡рд┐рд╡рд░рдг рдФрд░ рд╡рд┐рднрд┐рдиреНрди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВред URL рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдирд╛рдо рдкрд░, рдЕрдм рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ), '.py' рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ '.app'

рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП, app.yaml рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

application: fileshare #   fileshare     version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: /favicon\.ico static_files: favicon.ico upload: favicon\.ico - url: /delete/.* #     script: main.app login: admin #        . - url: /get/.* #      ,    ,    login: admin  login: required,         Google . script: main.app - url: .* # ,            . script: main.app login: admin 


рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдРрдк рдЗрдВрдЬрди рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдмреНрд▓реЙрдмрд╕реНрдЯреЛрд░ рд╕реНрдЯреЛрд░реЗрдЬ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП - рдбреЗрдЯрд╛рд╕реНрдЯреЛрд░ (рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдЧреИрд░-рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, Django рд╕реЗ ORM рдХреЗ рд╕рдорд╛рди рдЕрдкрдирд╛ рдврд╛рдВрдЪрд╛ рд╣реИ)ред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ Datastore рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрджреНрд╡рд┐рддреАрдп рдкреВрд░реНрдгрд╛рдВрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреБрдВрдЬреА рдХреЛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде) рдХреЗ рд╕рд╛рде рдПрдХ FileRecord рдСрдмреНрдЬреЗрдХреНрдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ BlobReferenceProperty рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИ:

 class FileRecord(db.Model): blob = blobstore.BlobReferenceProperty() 


URL рдХреЗ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдРрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ WSGIApplication рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ:

 app = webapp2.WSGIApplication( [('/', MainHandler), ('/upload', UploadHandler), ('/delete/([^/]+)?', DeleteHandler), ('/get/([^/]+)?', GetHandler), ], debug=False) 


рдкреНрд░рд╛рдкреНрдд рдпреВрдЖрд░рдПрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрд╡реЗрджрди рдЗрд╕реА рд╣реИрдВрдбрд▓рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, app.yaml рд╕реЗ рд╣реИрдВрдбрд▓рд░ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВред

рдЖрд╡реЗрджрди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:


рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдбреАрдмрдЧ рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдПрдБ:

 python google_appengine/dev_appserver.py <   > 

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛ, рддреЛ dev_appserver.py рдХреЗ рдмрд╛рдж --address 0.0.0.0 рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВред

рдпрджрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 python google_appengine/appcfg.py update <   > 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрд╕реЗ рдЖрдкрдХреЗ Google рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдВрдЧрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛрдЧрд╛ рдФрд░ appid.appspot.com рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ appid рдЖрдкрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред
Code.google.com рдкрд░ рдЖрд╡реЗрджрди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб (рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдмрд╕ app.yaml рдлрд╝рд╛рдЗрд▓ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ): http://code.google.com/p/fileshare-appengine

рдореМрдЬреВрджрд╛ рдлрд╝рд╛рдЗрд▓ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рд▓рд╛рдн:
neponyatki:

рдЕрджреНрдпрддрди: рдпрджрд┐ рдпреВрдирд┐рдХреЛрдбрдбрдмрд▓рд╕реНрдЯреНрд░реАрдо рдкреНрд░рдХрд╛рд░ рдХреА рддреНрд░реБрдЯрд┐ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдбрд╛рд▓реА рдЬрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╢рд╛рдЦрд╛ HKEY_CLASSES_ROT / Mime / Database / ContentType рд╕реЗ Cyrillic рд╡рд╛рд▓реА рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред
UPDATE2: рдЕрдм рд╕реЛрд░реНрд╕ рдХреЛрдб http://code.google.com/p/fileshare-appengine/source/rowse/ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
UPDATE3: рд╕рд╛рде рд╣реА рд╕рд╛рде GitHub https://github.com/SergeyBurma/fileshare-appengine рдкрд░

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


All Articles