python - 我可以在本地服务器和 Ubuntu 服务器上运行 Django 应用程序吗?
问题描述
所以我用 AWS EC2 部署了我的 Django 项目,它使用 Ubuntu 服务器。另外,我使用 Posgtres 作为数据库引擎。然后我对代码做了一些小改动,并想检查它是否正确制作但在我的本地计算机上,所以目前只有我可以检查。但是,当我使用python manage.py runserver
命令时,它给了我一个错误提示"Is the server running on host "##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com" and accepting TCP/IP connections on port 5432?"
。
这是我第一次部署项目,我不知道出了什么问题。当我尝试使用本地计算机访问时,是否必须关闭 Ubuntu 服务器?如果是这种情况,每次我进行小的更改并想自己检查时,我是否必须这样做?
谢谢。
解决方案
听起来您正试图让您的本地 Django 测试服务器连接到您的 AWS EC2 数据库。你可以做的是在本地安装和运行 Postgres,然后将你的本地 Django 服务器指向它。这是有关设置Host
选项的文档Database
:Django Database Settings
如果您将该Host
字段设置为空字符串,那么您的 AWS EC2 Django 服务器将使用其(本地)AWS EC2 Postgres 服务器,而您自己的本地计算机 Django 服务器也将使用您本地设置的 Postgres。
你的电流settings.py
可能是这样的:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '##Your database name ##',
'USER': '## Your database user ##',
'PASSWORD': '## Your database user password ##',
'HOST': '##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com',
'PORT': '', # Defaults to 5432
}
}
如果你只是设置:
'HOST': '' # Will connect to a localhost database
然后,您的 Django 服务器##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com
将连接到在端口 5432 上运行在同一位置 (localhost) 的 Postgres 数据库。类似地,您自己的计算机将连接到您自己计算机上的 localhost Postgres 数据库。您只需要设置HOST
数据库是否在与 Django 服务器不同的计算机上。对于您所描述的那种测试,本地数据库就足够了。
或者,如果您使用的是 Git,您可以将PG_HOST
字段添加到与local_settings.py
位于同一文件夹中的文件中settings.py
,然后将每个位置的相应主机添加到PG_HOST
,然后添加local_settings.py
到您的.gitignore
文件中。然后只需导入PG_HOST
您的settings.py
并将Host
字段设置为 equal PG_HOST
。这样,您可以在本地和服务器实例上独立设置数据库主机。例如:
在 AWS EC2 实例上创建 local_settings.py 内容:
PG_HOST = '##MyDBInstanceID##.ap-northeast-2.rds.amazonaws.com'
在本地计算机上使用以下内容创建 local_settings.py:
PG_HOST = '' # Local host
设置.py:
from .local_settings import PG_HOST
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '##Your database name ##',
'USER': '## Your database user ##',
'PASSWORD': '## Your database user password ##',
'HOST': PG_HOST,
'PORT': '', # Defaults to 5432
}
}
请记住.gitignore
local_settings.py ,否则特定位置的设置将被覆盖。
您也可以使用该local_settings.py
文件将您的 postgres 用户名和密码排除在 Git 历史记录之外(同样,如果您使用 git 或某些源代码控制)。
推荐阅读
- kibana-7 - 重新加载后无法访问 Kibana,并启用并启动了 kibana 服务。HTTP 302 错误
- javascript - 如何在云函数中使用 ES6(esm) 导入/导出
- python - 如何优雅地“min”然后使用python中的引用执行操作
- mysql - 如何通过查看分类列同时迭代 MYSQL 中的列以得出前 3 个值
- excel - 如何在 Excel 中使用多个条件搜索特定日期?
- keras - Keras - 使用嵌入多个分类变量
- c - 为什么我的 c 程序给我看一些不合逻辑的东西
- python - 数据类中的 Python 类“常量”
- python - 用 scipy solve_bvp 求解边值问题(扩散反应方程)
- python - Python logging.getLogger 在 AWS Glue python shell 作业中不起作用