2012-04-23 24 views
4

我試圖將一些配置變量傳遞給我的app.yaml中的main.py。我一直無法找到從代碼訪問app.yaml的語法。如何使用Google App Engine將app.yaml中的變量傳遞給main.py Python

例如,您希望讓用戶將其客戶端編號放在app.yaml中,並從main.py訪問它以傳遞到main.html中。雖然在main.py中創建一個變量可以很容易地傳遞它,但它似乎更適合放在app.yaml中。

例子:

的app.yaml

application: xyz 
    version: 1 
    runtime: python27 
    ... 
    clientID: (ID here) 

main.py

myID = appYAML.clientID 
    ... 
    values = {'xyz': blah.blah, 'myID': myID } 

main.html中

... 
    <script> 
     ... 
     {% ifequal myID %} 
     my_client = {{myID}} 
     ... 
    </script> 

回答

9

隨着1.6.5版本,應用程序引擎支持這個[1]:https://cloud.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Defining_environment_variables:關於如何使用這個可在

- In your app.yaml file, you can include an env_variables stanza that will set 
    the given environment variables in your application's runtime. 

信息。

+0

這非常有幫助,我將在1.6.5發佈後等待我的應用程序的這部分工作。 謝謝 – 2012-04-24 16:16:30

+0

有關如何使用此功能的信息,請訪問:https://developers.google.com/appengine/docs/python/runtime#The_Environment – 2012-04-30 03:46:00

4

這是不支持的,你應該把你的應用程序特定的se進入你自己的YAML文件。

+1

奇怪的是,這可以在Java中完成:https://developers.google.com/appengine/docs/java/config/appconfig#System_Properties_and_Environment_Variables – 2012-04-23 19:18:27

+0

我沒有看到任何理由不在app.yaml中執行此操作。有時候會想要分開一個單獨的配置文件,但是對於1或2個字段來說,它確實沒有意義。無論如何,我甚至都沒有看到用於訪問不同YAML文件中變量的方法。你是否有一個? – 2012-04-23 21:26:11

+0

@MarkFinch:你需要閱讀不同的YAML文件,並使用YAML解析器,除非你;以某種方式使用自動執行此操作的框架(這似乎不太可能)。使用app.yaml的問題在於,app.yaml沒有作爲應用程序文件上載到服務器,因此您無法在應用程序中手動讀取和解析它。 – geoffspear 2012-04-24 10:19:21

2

可以在app.yaml中定義變量,以使它們可用於該計劃的os.environ詞典:

env_variables: 
    variable_name: '<YOUR VALUE>' 

當你需要在main.py中使用這個變量就可以調用它以這樣的方式

import os 
CUSTOM_SETTINGS = os.environ['variable_name'] 

文檔:https://developers.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Defining_environment_variables

+0

這對設置變量非常有用,但作爲noob,您如何檢索並使用它們? – 2015-08-28 21:51:20

+0

@SuatAtanPhD:你爲什麼要嘗試將一個像''myapp.settings''這樣的字符串env var轉換爲一個int?或者你的意思是隻有'DJANGO_SETTINGS_MODULE = os.environ ['DJANGO_SETTINGS_MODULE']'? – 2017-10-31 18:25:36

+0

你對丹。謝謝! – coto 2017-11-02 19:12:14

相關問題