将Azure连接字符串与Django WebApp链接?

时间:2017-04-26 09:45:33

标签: python django azure environment-variables

这是我在Python上使用Python的第一个网站。我之前用.NET开发过。对不起,如果我的问题是基本问题。

我在Azure上部署了我的Django网站。它适用于settings.py中的数据库设置。

我想,下一步是将数据库设置传输到Azure的应用程序设置 - 连接字符串,我做了什么。

我知道我需要前缀MYSQLCONNSTR_connectionString1。

我现在如何将我的Django / Python WebApp与Azure应用程序设置中的连接字符串链接起来?

我非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

只需使用import os在您的Django代码os中导入settings.py包,然后获取这些在App settingsConnection strings中定义的环境变量Azure门户上的标签Application settings通过代码os.getenv("<environ-var-name>")

对于App settings中定义的环境变量,您只需将VARNAME定义的变量名称作为os.getenv()的参数传递。

要获取Connection strings中定义的环境变量的值,您需要为VARNAME等变量名称添加不同的前缀或符号,如下所示。

  1. 对于SQL DatabaseSQLAZURECONNSTR使用带有中缀符号_的前缀VARNAMESQLAZURECONNSTR_VARNAME

  2. 对于SQL ServerSQLCONNSTR使用带有中缀符号_的前缀VARNAMESQLCONNSTR_VARNAME

  3. 对于MySQLMYSQLCONNSTR使用带有中缀符号_的前缀VARNAMEMYSQLCONNSTR_VARNAME

  4. 对于CustomMYSQLCONNSTR使用带有中缀符号_的版本VARNAMEVARNAME_CONNECTSTRING

  5. 希望它有所帮助。

答案 1 :(得分:0)

我无法通过Azure的应用程序设置 - 连接字符串中的环境变量连接数据库,尽管我尝试了各种方法。仍然会感谢他们如何做到这一点。

取而代之的是阅读https://godjango.com/blog/working-with-environment-variables-in-python/

输入Azure应用程序设置 - 应用程序设置单个数据库连接值:

KEY                  VALUE
DATABASE_NAME:       <database>
DATABASE_USER:       <dbuser>
DATABASE_PASSWORD:   <dbpassword>
DATABASE_HOST:       <host>
DATABASE_PORT:       <port>

并在settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': os.environ.get('DATABASE_NAME', ''),
        'USER': os.environ.get('DATABASE_USER', ''),
        'PASSWORD': os.environ.get('DATABASE_PASSWORD', ''),
        'HOST': os.environ.get('DATABASE_HOST', ''),
        'PORT': os.environ.get('DATABASE_PORT', ''),    
    }
}