Python 将Azure连接字符串链接到Django WebApp?
这是我在Azure上使用Python的第一个网站。我以前是用.NET开发的。对不起,如果我的问题是基本问题 我在Azure上部署了我的Django网站。它可以与settings.py中的DB设置配合使用 我想,下一步是将DB设置传输到Azure的应用程序设置-连接字符串,我所做的就是这样 我知道我需要前缀MYSQLCONNSTR\u connectionString1 我现在如何在Azure应用程序设置中将我的Django/Python WebApp与连接字符串链接Python 将Azure连接字符串链接到Django WebApp?,python,django,azure,environment-variables,Python,Django,Azure,Environment Variables,这是我在Azure上使用Python的第一个网站。我以前是用.NET开发的。对不起,如果我的问题是基本问题 我在Azure上部署了我的Django网站。它可以与settings.py中的DB设置配合使用 我想,下一步是将DB设置传输到Azure的应用程序设置-连接字符串,我所做的就是这样 我知道我需要前缀MYSQLCONNSTR\u connectionString1 我现在如何在Azure应用程序设置中将我的Django/Python WebApp与连接字符串链接 非常感谢您的帮助。只需使用i
非常感谢您的帮助。只需使用
import os
在Django代码中导入os
包,如settings.py
,然后通过codeos.getenv(“”
)在Azure门户上的选项卡应用程序设置
或连接字符串
中获取这些环境变量,这些变量在应用程序设置
中定义
对于App settings
中定义的环境变量,只需将定义为VARNAME
的变量名作为os.getenv()
的参数传递即可
要获取在连接字符串中定义的环境变量的值,需要为变量名添加不同的前缀或surfix,如VARNAME
,如下所示
对于SQL数据库
,使用前缀SQLAZURECONNSTR
和中缀符号\uu
作为VARNAME
是SQLAZURECONNSTR\u VARNAME
对于SQL Server
,在VARNAME
中使用前缀SQLCONNSTR
和中缀符号。VARNAME
是SQLCONNSTR\u VARNAME
对于MySQL
,在VARNAME
中使用前缀MYSQLCONNSTR
和中缀符号。VARNAME
是MYSQLCONNSTR\u VARNAME
对于Custom
,使用带有中缀符号的surfixMYSQLCONNSTR
,VARNAME
是VARNAME\u CONNECTSTRING
希望有帮助。我无法通过Azure的应用程序设置-连接字符串中的环境变量连接数据库,尽管我尝试了各种方法。不过,我还是会很感激你的帮助
相反,什么起了作用,阅读:
在Azure应用程序设置-应用程序设置中输入单个DB连接值:
KEY VALUE
DATABASE_NAME: <database>
DATABASE_USER: <dbuser>
DATABASE_PASSWORD: <dbpassword>
DATABASE_HOST: <host>
DATABASE_PORT: <port>
如果我只将os.getenv(“MYSQLCONNSTR\cexymysql”)添加到设置数据库中,您所说的是正确的,但只是解释了一半。我仍然不知道如何将os.getenv(“MYSQLCONNSTR_cexymysql”)添加到settings.py,以确保它被Azure接受。如果我在Azure上的settings.py中添加纯os.getenv(“MYSQLCONNSTR_cexymysql”),我会得到一个“配置不当”错误,如果我添加数据库={‘默认值’:os.getenv(“MYSQLCONNSTR_cexymysql”)},这是“由于发生内部服务器错误,无法显示页面”。再次感谢,如果你能从这里接我的话?线索已经很老了,但对于像我这样的案例来说,谁最终发现了这一点。此时(2020-04-02),为了访问存储在Web应用程序设置中的连接字符串,您需要使用CUSTOMCONNSTR\u VARNAME
作为环境变量名。
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', ''),
}
}