2012-08-10 101 views
0

我是GAEPython新手。我無法將字符串參數從我的HTML頁面傳遞到Python函數(它適用於整數參數)如何將URL中的參數字符串傳遞給GAE中的Python函數?

我有以下網址:

http://localhost:8094/papers/xyz 

main()我有:

app = webapp2.WSGIApplication([ 
('/', homepage.ViewHomePage), 
('/about', aboutpage.ViewAboutPage), 
    ('/papers/([\w]+)', PaperList) 
], 
      config=config, 
      debug=True) 

的函數被定義爲:

class PaperList(BaseHandler): 

    def get(self, param1): 

app.yaml我有:

- url: .* 
    script: main.app 

這不起作用。但是,如果我只是將參數從一個字符串更改爲一個整數,那麼它的工作原理。 (我沒有做任何與參數,只是想要它接受字符串參數。)

有人可以告訴我什麼我必須改變,以允許它使用字符串參數,也指向我文檔解釋瞭如何通過main()傳遞參數?

我正在使用Python 2.7

+0

您已將該URL映射到main.py或app.yaml中的某處。請顯示該代碼。 – 2012-08-10 15:42:44

+0

感謝您的快速響應。我更正了原始問題以顯示main()和app.yaml。謝謝。 – 2012-08-10 16:07:14

回答

2

\d只匹配十進制數字。你的意思是用\w代替嗎?另外,沒有方括號。

+0

謝謝。 \ w做到了。我不明白無方括號。我在main()中有大約40行。我在原始問題中增加了幾行,使其更容易理解。你還認爲我應該放下方括號嗎?它按原樣工作。 – 2012-08-10 17:12:05

+0

方括號用於匹配相同位置的多個字符,例如, '[abc]'將匹配'a','b'或'c';類說明符如'\ d'或'\ w'與它自己的多個字符匹配。 – 2012-08-10 17:47:45

0

你也有傳球的選擇了urlencoded如yourapp.appspot.com/papers?keyword=helloworld

數據和得到它在你的處理器: 關鍵字= self.request.GET.get(」關鍵字') 或 keyword = self.request.POST.get('keyword')取決於您的請求方法。

你也可以在AJAX文章的主體中傳遞json數據並使用json將其反序列化爲python數據。爲了驗證這種數據,我建議使用性感的。

相關問題