-1

私は次のようにリクエストURLを取得しようとしています

import webapp2

class MainPage(webapp2.RequestHandler):
    def get(self):
        print self.request.get('url')

app = webapp2.WSGIApplication([('/.*', MainPage)], debug=True)

リクエストが

http://localhost:8080/index.html

それは私に次のようなものを与えます

Status: 200 Content-Type: text/html; charset=utf-8 Cache-Control: no-cache Content-Length: 70

私が取得する必要があるのは次のようなものです

index.html

編集:文字列を確認し、それに応じて正しいhtml/templateファイルを表示できるようにします。

私はすでにリクエストドキュメントをチェックし、多くの代替案を試しましたが、解決策を見つけることができないようです。私はWeb開発にまったく慣れていません。私は何が欠けていますか?

4

3 に答える 3

6

ここから開始する必要があります:https ://developers.google.com/appengine/docs/python/gettingstartedpython27/helloworld

テンプレートやテンプレートモジュール/エンジンを使用していないため、すべてをマッピングしているため、アクセスしているパスとは無関係です。/.*

使用しself.response.write()ないでprintください。
リクエストクラスをチェックアウトする前に最初からドキュメントを読み始めると、やはり良いでしょう。

編集:

requesthandlerでurlpathを取得し、urlpathに基づいてさまざまなテンプレートを提供する場合は、次のようにします。

def get(self):
    if self.request.path == '/foo':
        # here i write something out
        # but you would serve a template
        self.response.write('urlpath is /foo')
    elif self.request.path == '/bar':
        self.response.write('urlpath is /bar')
    else:
        self.response.write('urlpath is %s' %self.request.path)

より良いアプローチは、複数のReqeustHandlerを持ち、それらをWSGIApplication: にマップすることです。

app = webapp2.WSGIApplication([('/', MainPage),
                               ('/foo', FooHandler),
                               ('/bar', BarHandler),
                               ('/.*', CatchEverythingElseHandler)], debug=True)
于 2012-07-21T16:32:32.263 に答える
2

それ以外の:

self.request.get('url')

使用する:

self.request.url

役立つと思われるその他のオプションは次のとおりです。

self.request.path
self.request.referer

これらの変更を試して、探している結果を取得してください。

于 2012-07-22T10:49:15.457 に答える
1

これも使用できます:

def get(self):
     self.request.GET['name']
     self.request.GET['sender']
于 2013-10-08T07:03:54.233 に答える