Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Azure连接字符串链接到Django WebApp?_Python_Django_Azure_Environment Variables - Fatal编程技术网

Python 将Azure连接字符串链接到Django 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

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

我在Azure上部署了我的Django网站。它可以与settings.py中的DB设置配合使用

我想,下一步是将DB设置传输到Azure的应用程序设置-连接字符串,我所做的就是这样

我知道我需要前缀MYSQLCONNSTR\u connectionString1

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


非常感谢您的帮助。

只需使用
import os
在Django代码中导入
os
包,如
settings.py
,然后通过code
os.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
    ,使用带有中缀符号
    的surfix
    MYSQLCONNSTR
    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', ''),    
        }
    }