4

私はJavaRESTのバックグラウンドからに来ていPythonますGoogle App Engine'swebapp2path-parametersの使用についてサポートが必要です。以下は、Javaがリクエストを読み取る方法の例です。誰かがコードをPythonがどのように読み取るかを翻訳してくれwebapp2ませんか?

// URL: my_dogs/user_id/{user_id}/dog_name/{a_name}/breed/{breed}/{weight}

@Path("my_dogs/user_id/{user_id}/dog_name/{a_name}/breed/{breed}/{weight}")
public Response getMyDog(
    @PathParam("user_id") Integer id,
    @PathParam("a_name") String name,
    @PathParam("breed") String breed,
    @PathParam("weight") String weight
){

//the variables are: id, name, breed, weight.
///use them somehow

}

私はすでにグーグルの例を調べました(https://developers.google.com/appengine/docs/python/gettingstartedpython27/usingwebapp)。しかし、私は単純なものを拡張する方法がわかりません

app = webapp2.WSGIApplication([('/', MainPage),
                           ('/sign', Guestbook)],
                          debug=True)
4

1 に答える 1

5

webapp2のURIルーティングを見てください。ここでは、URIを照合/ルーティングして、引数を取得できます。これらのキーワード引数はハンドラーに渡されます:http ://webapp2.readthedocs.io/en/latest/guide/routing.html#the-url-template

これは、1つの引数{action}を持つhelloworldの例です。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import webapp2

class ActionPage(webapp2.RequestHandler):

    def get(self, action):

        self.response.headers['Content-Type'] = 'text/plain'        
        self.response.out.write('Action, ' + action)

class MainPage(webapp2.RequestHandler):

    def get(self):

        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, webapp2 World!')

app = webapp2.WSGIApplication([
        webapp2.Route(r'/<action:(start|failed)>', handler=ActionPage),
        webapp2.Route(r'/', handler=MainPage),                    
], debug=True)

そしてあなたのapp.yaml:

application: helloworld
version: 1
runtime: python27
api_version: 1
threadsafe: false

handlers:
- url: (.*)
  script: helloworld.app

libraries:
- name: webapp2
  version: latest

これは、SDKで試してみると正常に機能します

http://localhost:8080/start   # result: Action, start
or
http://localhost:8080         # result: Hello, webapp2 World!
于 2012-12-03T03:11:12.277 に答える