gpt4 book ai didi

python - Django SECRET_KEY 设置在 github 工作流中不能为空

转载 作者:行者123 更新时间:2023-12-03 17:00:25 27 4
gpt4 key购买 nike

我有一个 Django 的 GitHub 工作流程,当它迁移数据库时,它给出了错误

django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

key 存储在 .env 中文件并加载

from dotenv import load_dotenv
load_dotenv()
from pathlib import Path
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
SECRET_KEY = os.getenv("secret_key")

这是文件树
C:.
| db.sqlite3
| manage.py
|
\---djangosite
| .env
| asgi.py
| settings.py
| urls.py
| wsgi.py
| __init__.py
|
\---__pycache__
...

这是 manage.py,它是常规的 django,从 settings.py 加载 .env 代码

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
from dotenv import load_dotenv
load_dotenv()
from pathlib import Path
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
import os
import sys


def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangosite.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)


if __name__ == '__main__':
main()


当我运行时 manage.py在我的 PC 上,它加载 key 并运行服务器,但 GitHub 给出了上述错误。
如何阻止此错误发生?

最佳答案

如果您已存储 SECRET_KEY在您系统的环境变量中,然后对于 GitHub 工作流,您可以在 YAML 文件中添加一个虚拟环境变量。
设置.py 应该看起来像这样

import os
...
SECRET_KEY = os.environ.get('SECRET_KEY') # Or the name by which you stored environment variable
...
步骤如下:
第一步:生成虚拟 SECRET_KEY .你可以自己创建
import secrets
print(secrets.token_hex(25))
或者从像 this 这样的网站生成.
第 2 步:在您的 .github/workflows YAML 文件(例如 django.yml)中,添加以下内容
steps:
...
- name: Run Tests
env:
SECRET_KEY: your-genereated-secret_key
run: |
python manage.py test
然后,在您的本地环境、生产环境和 GitHub 工作流程中,使用相同版本的代码,一切都会正常运行。

关于python - Django SECRET_KEY 设置在 github 工作流中不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61670081/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com