PythonAnywhere:manage.py returns“;拒绝用户访问';用户'@';%';到数据库';用户'&引用;
我有非常令人沮丧的问题与蟒蛇。每当我需要运行manage.py时,我都会做一些杂碎的工作来启动和运行我的站点,但现在我需要设置一个自动任务,这不再是一个选项 问题在于,在PythonAnywhere中,数据库必须在约定中命名为“user$database”。由于美元符号,每当我运行类似于PythonAnywhere:manage.py returns“;拒绝用户访问';用户'@';%';到数据库';用户'&引用;,python,django,pythonanywhere,manage.py,Python,Django,Pythonanywhere,Manage.py,我有非常令人沮丧的问题与蟒蛇。每当我需要运行manage.py时,我都会做一些杂碎的工作来启动和运行我的站点,但现在我需要设置一个自动任务,这不再是一个选项 问题在于,在PythonAnywhere中,数据库必须在约定中命名为“user$database”。由于美元符号,每当我运行类似于python manage.py inspectdb的东西时,我都会收到标题中提到的错误,因为附加到美元符号的任何东西都被shell假定为环境变量 目前,我正在将生产环境变量存储在.env文件中,并将其设置到se
python manage.py inspectdb
的东西时,我都会收到标题中提到的错误,因为附加到美元符号的任何东西都被shell假定为环境变量
目前,我正在将生产环境变量存储在.env文件中,并将其设置到settings.py文件中。这在Django内部起作用,但在shell中运行manage.py命令时不起作用。我试图通过在manage.py文件中添加以下代码来解决此问题:
# update DATABASE_NAME to use \$ instead of $ else bash commands wont work
os.putenv(
"DATABASE_NAME",
str(os.getenv("DATABASE_NAME")).replace('$', '\\$')
)
然而,这并不能解决问题
我还尝试通过创建一个名为production_settings.py的文件来解决此问题,该文件包含我的数据库设置,并将数据库名称用单引号括在我的settings.py文件旁边,然后在我的settings.py文件中插入以下代码以设置我的数据库设置:
try:
from production_settings import DATABASES
except ImportError:
pass
同样,这没有起作用。我试着用PythonAnywhere寻找支持,但似乎没有,所以我来到这里希望这里的人知道如何解决这个问题。我现在落后几天了。。。我该怎么办?听起来您需要在env文件中的值周围加上单引号