2015-01-14 45 views
-1

---改寫問題,使其更清晰幷包含代碼---GAE Python如何傳遞和檢索參數到請求處理程序?

我正在構建我的第一個GAE python應用程序,並且需要弄清楚如何在這樣的系統的不同模塊之間傳遞參數不同的請求處理程序可以選擇這些參數。

我有我的應用程序的主頁,它是一個頁面的按鈕,用戶可以點擊跳轉到不同的系統塊(產品,食譜,訂單..)。用戶登錄主頁面,並且該登錄應該貫穿系統的所有塊。

主要頁面上的HREF的地區現在看來像是:

<a href="products">Products 
<a href="recipes">Recipes 
<a href="orders">Orders 

並非所有用戶都可以訪問所有的塊,我把一個列表中的數據存儲與訪問權限。

現在進入「產品」頁面:如果用戶在數據存儲區中的登錄表明對該頁面有足夠的訪問權限,則只能訪問此頁面。

用戶點擊主頁面上的產品鏈接(或按鈕),然後登錄到products.py文件中的「../products」頁面。

在products.py中,我提供給用戶(再次)從不同選項中進行選擇。默認情況下,用戶被定向到第一個處理程序,並看到一個新的選項列表。

application = webapp2.WSGIApplication([ 
    ('/products', ProductsPage), 
    ('/products-save', SaveProduct), 
    ('/products-find', FindProduct), 
    ('/products-delete', DeleteProduct),  
    ('/products-search', SearchProducts), 
], debug = True) 

假設用戶現在選擇創建或保存產品。他將被引導至由../products-save頁面,由SaveProduct處理。

此請求處理程序的開頭爲:

class SaveProduct(webapp2.RequestHandler): 
    def post(self): 
     # if user_id is authorized to create/modify products: 
     #  code ... 
     # else display nice message "not enough rights" 

我的主網頁user_ID的,並需要通過所有的中間步驟,以運輸它,所以它到達最終的功能(SaveProduct在這個例子中)上爲了驗證用戶是否有足夠的權限,請使用anther .py文件。

我的問題是:我該怎麼做?

我檢查了配置選項的webapp2文檔和關於獲取,但沒有找到我正在尋找。

+1

這個問題對我來說很不清楚。你在談論查詢字符串嗎?你有代碼可以顯示嗎? – aschmid00

+0

Hi @ aschmid00,感謝您的回覆。我在這個問題中添加了代碼,並解釋了我迄今爲止所做的工作。也許問題現在更清楚了? – kxtronic

回答

1

如果您正在討論來自用戶填寫和提交的網頁的請求,那麼入門教程here有一些如何實現此目的的示例。具體來說,來自HTML表單的參數將成爲您的請求處理程序代碼接收到的request對象的一部分,您只需在處理程序代碼中按名稱獲取它們即可。這些鏈接假設您使用的是webapp2框架,但其他框架的流程相同。

+0

嗨gcobb,謝謝,但也許我不清楚在我的問題。我已經調整了教程中的代碼,將表單中搜索框的內容傳遞給請求處理程序:搜索字符串傳遞時沒有問題。我真正的問題是我怎麼傳遞一個參數不是從窗體,而是從代碼?例如允許/拒絕用戶訪問系統的某些部分我需要將user_id或他的授權級別傳遞給不同的模塊。順便說一句,我正在驗證用戶對數據存儲中的列表,我可以檢查用戶可以訪問哪些模塊,以及它的r/o或r/w。 – kxtronic

+0

隱藏的輸入字段將允許您傳遞對用戶通常不可見的表單數據,但由於精明的用戶可以輕鬆地更改發送到服務器的值,因此這是進行身份驗證的一種冒險方式。將某些用戶標識發送到服務器可能更安全,並讓服務器端檢查用戶具有的訪問權限。 –

相關問題