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

рдХреБрдЫ рд╕рд╛рд▓ рдмреАрдд рдЧрдПред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдерд╛, рд╡рд╣ рдмреНрд▓реЙрдЧ рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реБрдЖ, рдФрд░ рдореИрдВ рдкрд╛рдпрдерди рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд▓рдЧрд╛, рдФрд░ рдлрд┐рд░ Djangoред рд░реВрдкрд░реЗрдЦрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдПрдХ рдирдпрд╛ рдмреНрд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдереА, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ - рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рднрд╛рдЧ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, Django рдХреЗ рд╕рд╛рде рд▓рд╛рдн рд╕рд░рд▓ рдФрд░ рдордЬреЗрджрд╛рд░ рд╣реИред рдФрд░ рдЕрдм рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рдкреГрд╖реНрда рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, рдХрдИ рдЦрдВрдб, рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдЖрджрд┐, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЧрд╛рдпрдм рдерд╛ - рдЧреНрд░рдВрдереЛрдВ рдХрд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдВрдкрд╛рджрди рдФрд░ рдкреНрд░рдХрд╛рд╢рдиред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдпрд╛рдж рдЖрдпрд╛ред рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛ - рдореИрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗрд╡рд▓ рдХреБрдЫ рд▓реЛрдХрдкреНрд░рд┐рдп рдмреНрд▓реЙрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдЖрдкрдХреЛ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ - рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдмреНрд▓реЙрдЧ рдореЗрдЯрд╛рд╡реЗрдпрд░рдмреНрд▓реЙрдЧ рдПрдкреАрдЖрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЦреБрдж рдорд╛рдирдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдХрд░рддрд╛ -
рд╡рд┐рдХреА рдореБрдЭрд╕реЗ рдмреЗрд╣рддрд░ рдХрд░реЗрдЧрд╛ред рд╣рдо Django рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдЗрдЯ рдкрд░ MetaWeblog рдХреЗ рд╕рд░реНрд╡рд░ рдкрдХреНрд╖ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ - рд░реВрд╕реА рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдпрд╣ PHP, рдпрд╛ .NET рдХреЛрдб рд╣реИред рдпрд╣ рдкрд╛рда рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдХреЗрд╡рд▓ рдореЗрд░реЗ рдЬреИрд╕реЗ рд╣реА рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рди рд╣реЛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ред
рддреЛ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП? рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ
XML-RPC рд╕рд░реНрд╡рд░ (MetaWeblog API XML-RPC рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ)ред рдкрд╛рдпрдерди рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ xmlrpclib рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ Django рдХреЗ рд╕рд╛рде рд╕реАрдзреЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛ред рдЦреЛрдЬ рдХреЗ рдХреБрдЫ рд╕рдордп рдмрд╛рдж,
django-xmlrpc рдкрд╛рдпрд╛ рдЧрдпрд╛ - рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рд░реНрд╡рд░ - рдПрдХ XML-RPC рдЕрдиреБрд░реЛрдз рдкреНрд░реЛрд╕реЗрд╕рд░ред рдпрд╣рд╛рдВ рд╣рдо рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВрдЧреЗред рд╕реНрдерд╛рдкрдирд╛ рд╕рд░рд▓ рд╣реИ, рдФрд░ рдкреНрд░рд╢реНрди рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ,
http: // рдбреЛрдореЗрди / xmlrpc рдкрд░ / рдЖрдк рдкрдВрдЬреАрдХреГрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рд╕реЗрдЯрд┐рдВрдЧ рдПрдХ рдЪрд░ рд╣реИ
XMLRPC_METHODS, рдЬрд┐рд╕рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдХрд╣реАрдВ рд░рдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдХрд╛рд░рддреВрд╕ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдЯ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдлрдВрдХреНрд╢рди рдХрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реЛрддрд╛ рд╣реИ - рд╣реИрдВрдбрд▓рд░, рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдоред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
XMLRPC_METHODS = (('myproject.myapp.views.get_users_blogs', 'blogger.getUsersBlogs'),)
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ blogger.getUsersBlogs рдирд╛рдордХ рдПрдХ рд╡рд┐рдзрд┐ рдкрдВрдЬреАрдХреГрдд рдХреА, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВрдбрд▓рд░ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдареАрдХ рдЙрд╕реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рднреА рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВред
рдЕрдм рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рд╕реАрдзреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдореЗрдЯрд╛ рд╡реЗрдмрд▓реЙрдЧ рдПрдкреАрдЖрдИ рдореЗрдВ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ:
- metaebeblog.newPost ()
- metaWeblog.getPost ()
- metaebeblog.editPost ()
- metaWeblog.getCategories ()
- metaWeblog.getRecentPosts ()
- metaebeblog.newMediaObject ()
рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдФрд░ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ рджреА рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
- blogger.getUserBlogs ()
- blogger.deletePost ()
- blogger.getUserInfo ()
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЕрдВрддрд┐рдо рджреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЕрднреА рддрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдХреЗ рдмрд┐рдирд╛ рдмрд╕ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣реИ рдХрд┐ рд╣рдо blogger.getUserBlogs () рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдЗрд╕рд▓рд┐рдП - рдпрд╣рд╛рдВ рд╣реИрдВрдбрд▓рд░ рдХрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рд╣реИ:
from django_xmlrpc.decorators import xmlrpc_func @xmlrpc_func(returns='string', args=['string', 'string', 'string',]) def get_users_blogs(appKey, username, password): user = u_authenticate(username, password) return [{'isAdmin': user.is_superuser, 'url': 'http://127.0.0.1:8000/', 'blogid': '1', 'blogName': 'MyWebBlog'}]
рдХреЛрдб рд╕рд░рд▓ рд╣реИ, рдФрд░ рдлрд┐рд░ рднреА рдЯрд┐рдкреНрдкрдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреА рдЖрдВрдЦ рдХреЛ рдкрдХрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдкрд╣рд▓реА рдЪреАрдЬ xmlrpc_func рдбреЗрдХреЛрд░реЗрдЯрд░ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдФрд░ рдкрд╣рд▓рд╛ рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реИред рдЗрд╕ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрд╣ рд╣рдорд╛рд░реА рдкрджреНрдзрддрд┐ рдореЗрдВ XML-RPC рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рдХрдбрд╝рд╛рдИ рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рд╣рдо рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрд╕ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЛ рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдЪреНрдЫрд╛, рдЪрд▓реЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕ рдмрд╛рдд рдХрд╛ рдЦреЗрдж рд╣реИ?
рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдпрдВ 3 рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ:
- appKey - рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА - рдЧреНрд░рд╛рд╣рдХ, рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо - рд╕реЗрд╡рд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо
- рдкрд╛рд╕рд╡рд░реНрдб - рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╛рд╕рд╡рд░реНрдб, рдХреНрд░рдорд╢рдГред
U_authenticate рдлрд╝рдВрдХреНрд╢рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рд╣реА рд╣реИред рдЖрдк рдЕрдкрдиреА рд╕рддреНрдпрд╛рдкрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЬреЛ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
from xmlrpclib import Fault def u_authenticate(username, password): try: user = User.objects.get(username__exact=username) except User.DoesNotExist: raise Fault('1', 'Username is incorrect.') if not user.check_password(password): raise Fault('1', 'Password is invalid.') if not user.is_staff or not user.is_active: raise Fault('2', 'User account unavailable.') return user
рджреЛрд╖ XML-RPC рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рддреНрд░реБрдЯрд┐ рдХреЛрдб (рдордирдорд╛рдирд╛, рдЖрдкрдХреЗ рд╡рд┐рд╡реЗрдХ рдкрд░), рдФрд░ рдЗрд╕рдХрд╛ рдкрд╛рдареАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИред рдпрд╣ рдХреЛрдб рдФрд░ рдкрд╛рда рд╣реИ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧрд╛ред
рдЪрд▓рд┐рдП рд╣рдорд╛рд░реЗ get_users_blogs рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрдЯрд╛ рдЗрд╕рдореЗрдВ рд╡рд╛рдкрд╕ рд▓реМрдЯрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ:
- isAdmin - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╢рд╛рд╕рдХ рд╣реИ рдпрд╛ рдирд╣реАрдВред
- url - рд╕реАрдзреЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдХрд╛ рдкрддрд╛
- рдмреНрд▓реЙрдЧрд┐рдб рд╕реЗрд╡рд╛ рдореЗрдВ рдЖрдкрдХреЗ рдмреНрд▓реЙрдЧ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрдИрдбреА рд╣реИред рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдХрдИ рдмреНрд▓реЙрдЧ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рд╕рдВрдЦреНрдпрд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реВрдиреНрдпред
- рдмреНрд▓реЙрдЧрдирд╛рдо - рдЖрдкрдХреЗ рдмреНрд▓реЙрдЧ рдХрд╛ рдирд╛рдо, рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рддрдереНрдп рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдпреВрдЖрд░рдПрд▓, рд╕рд╛рде рд╣реА рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо, рдХрдбрд╝рд╛рдИ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдЪ рдирд╣реАрдВ рд╣реИ - рдкрддреЗ рдпрд╛ рд╕рд╛рдЗрдЯ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХреЛрдб рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдореИрдВрдиреЗ рд╕рдордЭ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рд╣реИред рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдЧ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ
http://127.0.0.1:8000/xmlrpc/ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрддреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдореЗрдЯрд╛ рд╡реЗрдмрд▓реЙрдЧ рдПрдкреАрдЖрдИ рдПрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВред рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд╛рде рдмреНрд▓реЙрдЧ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдЧрд╛, рдФрд░ рдкреНрд░рдХрд╛рд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдЧ (рдПрдЪрдЯреАрдПрдордПрд▓, рд╕реАрдПрд╕рдПрд╕) рдХреЗ рджреГрд╢реНрдп рд╡рд┐рд╖рдп рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рднреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдореЗрдВ рдордирд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рд╡рд┐рд╖рдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рд░рд╛рдЗрдЯрд░ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмреНрд▓реЙрдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рд░рд┐рдХреЙрд░реНрдб, рдЬрдмрдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ metaWeblog.newPost () рдЕрднреА рддрдХ рд╣рдорд╛рд░реЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдЦреИрд░, рд╣рдо рдХрд┐рд╕рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдЗрд╕реА рддрд░рд╣, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, XMLRPC_METHODS рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
('myproject.myapp.views.new_post', 'metaWeblog.newPost')
рдЕрдм рд╕рдорд╛рд░реЛрд╣ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рд╣реИрдВрдбрд▓рд░:
from datetime import datetime @xmlrpc_func(returns='string', args=['string', 'string', 'string', 'struct', 'boolean']) def new_post(blog_id, username, password, post, publish): user = u_authenticate(username, password) item = News() item.title = post['title'] item.text_news = post['description'] if post.get('dateCreated'): item.date = datetime.strptime(str(post['dateCreated']), '%Y%m%dT%H:%M:%S') else: item.date = datetime.now() item.author = user item.public = publish item.save() return item.pk
рдХреЛрдб рднреА рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд┐рд░реНрдл рдорд╛рдорд▓реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВрдВрдЧрд╛:
рдкрд╣рд▓реЗ рддреАрди рд╕реНрд╡реАрдХреГрдд рдореВрд▓реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдореИрдВ рд╢реЗрд╖ рджреЛ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛:
- рдкреЛрд╕реНрдЯ - рд╕реАрдзреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╕рд╛рдордЧреНрд░реАред рдпрд╣ рдПрдХ рдРрд╕рд╛ рд╢рдмреНрджрдХреЛрд╢ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рдЪреАрдЬреЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ ... рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢реАрд░реНрд╖рдХ рдХрд╛ рд╣реИ - рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╢реАрд░реНрд╖рдХ, рд╡рд┐рд╡рд░рдг - рдореБрдЦреНрдп рдкрд╛рда, рджрд┐рдирд╛рдВрдХрд┐рдд - рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдП рдЬрд╛рдиреЗ рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд╢реНрд░реЗрдгрд┐рдпрд╛рдВ - рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЯреИрдЧред рдлрд┐рд░ рднреА, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдП рдЧрдП рд╕рдВрднрд╛рд╡рд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдФрд░ рджрд┐рдирд╛рдВрдХ рдХреНрд░рд┐рдПрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд┐рдерд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛, рддреЛ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдмреЗрд╢рдХ, рдпрд╣ рд╕рдм рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдкрдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ / рдЗрдЪреНрдЫрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрди рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдкреЛрд╕реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд╕рдХрддреА рд╣реИрдВ, рдЕрдкрдиреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рддрдп рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдШрд░ рдкрд░ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реИред
- рдкреНрд░рдХрд╛рд╢рд┐рдд - рдЯрд╛рдЗрдк рдмреВрд▓рд┐рдпрди рдХрд╛ рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓, рдЯреНрд░реВ рдХреЗ рдмрд░рд╛рдмрд░ рдпрджрд┐ рдкреЛрд╕реНрдЯ рддреБрд░рдВрдд рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЧрд▓рдд рд╣реИ рддреЛ рдЗрд╕реЗ рдбреНрд░рд╛рдлреНрдЯ рдкреНрд░рддрд┐рдпреЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдмрд╛рдХреА рдХреЛрдб рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдПрдХ рд╡рд╕реНрддреБ рд╡рд╕реНрддреБ рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рд╕рд░рд▓рддрдо рд╕рдорд╛рдЪрд╛рд░ () рдореЙрдбрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рд╕реЗ рднрд░реА рдЬрд╛рддреА рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдХреЗрд╡рд▓ item.date рдкрд░ рд░реБрдХрдиреЗ рд▓рд╛рдпрдХ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рдореБрдЦ рддрд╛рд░реАрдЦ рдХреЗ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╛рда рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдШрдЯрдХреЛрдВ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рджрд┐рдирд╛рдВрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдореБрдЦреНрдп рддрд┐рдерд┐ рдХреНрд░рд┐рдПрдЯ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рд╕рдордп рдФрд░ рддрд╛рд░реАрдЦ рдирд┐рд░реНрдорд╛рдг рдХреА рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИред рдореИрдВ рджреЛрд╣рд░рд╛рддрд╛ рд╣реВрдВ - рдпрд╣ рд╕рдорд╛рдЪрд╛рд░ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдореЙрдбрд▓ рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреА рдХреБрдВрдЬреА рдХрд╛ рдХреЛрдИ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рдорд╛рдЪрд╛рд░ рдХреЗ рдЗрд╕ рдореЙрдбрд▓ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреЛрдИ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЖрдЗрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдкрд░, рдЗрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдЖрдЗрдЯрдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред pk. рдпрд╣рд╛рдВ рдпрд╣ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реИред рдирдИрдкреЛрд╕реНрдЯ () рд╡рд┐рдзрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рд▓реМрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕рдВрднрд╡ рд╕рдВрдкрд╛рджрди / рд╡рд┐рд▓реЛрдкрди рдХреЗ рд▓рд┐рдП рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдвреВрдВрдврдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗред рдЖрдк рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рдлрд┐рд░ рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдкреАрдХреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рд╣реИред рдЕрдм рд╕реЛрдЪреЗрдВ рдХрд┐ рдЕрдЧрд░ рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ Django рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдореЗрдВ рд╣рдЯрд╛ рджреЗрдВ, рдЗрд╕рд╕реЗ рдПрдХ рдирдИ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ? рд▓реЗрдХрд┐рди рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрд╛рдд рд╣реЛрдЧреА: рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдХреЛ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдХреНрд╖рдг рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдкрд╣рд▓реЗ рд╣реА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рджреВрд╕рд░рд╛ рдЙрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдкреАрдХреЗ рдХреЗ рд╕рдорд╛рди рд╣реАред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рдХреЙрд░реНрди рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕реЗ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЬреАрд╡рди рдореЗрдВ рдЖрдкрдХреЛ рд╣рд░ рджрд┐рди рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдЬреВрдЭрдирд╛ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрд╣ pk рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИред рдлрд┐рд░ рднреА, рдкреАрдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЖрдк рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдирдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдХрд╛ рдЖрдирдВрдж рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ :)ред
рдореИрдВ рдиреАрдЪреЗ metaWeblog.editPost () рдФрд░ blogger.deletePost () рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рджреВрдВрдЧрд╛ред рдХреЛрдб рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛ред
@xmlrpc_func(returns='boolean', args=['string', 'string', 'string', 'struct', 'boolean']) def edit_post(post_id, username, password, post, publish): user = u_authenticate(username, password) item = News.objects.get(id=post_id, author=user) item.title = post['title'] item.text_news = post['description'] if post.get('dateCreated'): item.date = datetime.strptime(str(post['dateCreated']), '%Y%m%dT%H:%M:%S') else: item.date = datetime.now().date() item.author = user item.public = publish item.save() return True @xmlrpc_func(returns='boolean', args=['string', 'string', 'string', 'string', 'string']) def delete_post(apikey, post_id, username, password, publish): print post_id user = u_authenticate(username, password) News.objects.get(id=post_id, author=user).delete() return True
рдпрджрд┐ рд╕рдлрд▓ рд╣реЛ рддреЛ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдмреНрд▓реЙрдЧ рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐рдпрд╛рдБ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
рдореИрдВ рдЕрдиреНрдп рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рджреВрдВрдЧрд╛ред рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдореЗрдЯрд╛ рд╡реЗрдмрд▓реЙрдЧ рдПрдкреАрдЖрдИ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЕрдм рдмрд╕ рдЗрддрдирд╛ рд╣реА :)ред рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рдпрдерди рдореЗрдВ рд╡рд┐рд╖рдп рдкрд░ рд░реВрд╕реА-рднрд╛рд╖рд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХрдореА, рдФрд░ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдиреЗ рдореБрдЭреЗ рдХреБрдЫ рд╣рдж рддрдХ рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЕрдВрддрд░ рдХреЛ рдереЛрдбрд╝рд╛ рднрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЕрдм рдореИрдВ рдЕрдкрдиреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмреНрд▓реЙрдЧ рдХреЛ рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдЪрд╛рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдФрд░ рдЖрдк рдореЗрдЯрд╛ рд╡реЗрдмрд▓реЙрдЧ рдПрдкреАрдЖрдИ рд╕рдорд░реНрдерди рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкрд╕рдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд▓рд╛рдЗрд╡ рд░рд╛рдЗрдЯрд░ рдкрд░ рджрд╛рдВрд╡ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдирд╣реАрдВ рд▓рдЧрддрд╛ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред