如何使用Google App Engine Python将变量从app.yaml传递到main.py.

时间:2012-04-23 18:51:17

标签: python google-app-engine

我正在尝试将一些配置变量从app.yaml传递给我的main.py.我无法从代码中找到访问app.yaml的语法。

例如,您希望用户将其客户端号码放在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>

3 个答案:

答案 0 :(得分:9)

在1.6.5版本中,App Engine支持此[1]:

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

有关如何使用此信息的信息,请访问:https://cloud.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Defining_environment_variables

答案 1 :(得分:4)

不支持,您应该将特定于应用程序的设置放入您自己的YAML文件中。

答案 2 :(得分: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