Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 Django中的URL quote PostgreSQL数据库密码_Python_Django_Postgresql - Fatal编程技术网

Python Django中的URL quote PostgreSQL数据库密码

Python Django中的URL quote PostgreSQL数据库密码,python,django,postgresql,Python,Django,Postgresql,我在用Python 3.5.0创建的项目中使用Django 1.9.2和psyopg2.6.1。我的数据库配置如下所示: import environ from django.utils.http import urlquote env = environ.Env() DATABASES = { # 1) This does not work. # 'default': env.db("DATABASE_URL", # default

我在用Python 3.5.0创建的项目中使用Django 1.9.2和psyopg2.6.1。我的数据库配置如下所示:

import environ
from django.utils.http import urlquote
env = environ.Env()

DATABASES = {
    # 1) This does not work.
    # 'default': env.db("DATABASE_URL",
    #                   default="postgres://myuser:%s@127.0.0.1:5432/mydb" % "1234#abc")
    # 2) This does not work.
    # 'default': env.db("DATABASE_URL",
    #                   default="postgres://myuser:%s@127.0.0.1:5432/mydb" % urlquote("1234#abc"))

    # 3) This works 
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'mydb',
        'USER': 'myuser',
        'PASSWORD': '1234#abc',
        'PORT': 5432,
        'HOST': '127.0.0.1'
    }
}
我的数据库密码中有一个
#
。我可以成功连接选项#3选项,但使用其他两个选项时,我会收到以下错误:

1)
ValueError:以10为基数的int()的文本无效:“1234”

2)
django.db.utils.OperationalError:致命:用户“myuser”的密码身份验证失败


如何使用
#
将此密码正确发送到PostgreSQL?

尝试将其编码为原始字符串,即在您的情况下:

 'default': env.db("DATABASE_URL",
    default="postgres://myuser:%s@127.0.0.1:5432/mydb" % r"1234#abc")

返回您的结果。

urlquote('1234#abc')
将返回
1234%23abc
,它显然与您的数据库密码不匹配。@xyres我已更新了问题以使我的问题更清楚。。django Enviro库的作者已经做了一个修改来修复这个bug,但仍然没有合并它。