mmo*_*cow 5 python django github-actions
我有一个 Django 的 GitHub 工作流程,当它迁移数据库时,它给出了错误
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
Run Code Online (Sandbox Code Playgroud)
密钥存储在.env
文件中并加载
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
Run Code Online (Sandbox Code Playgroud)
这是文件树
C:.
| db.sqlite3
| manage.py
|
\---djangosite
| .env
| asgi.py
| settings.py
| urls.py
| wsgi.py
| __init__.py
|
\---__pycache__
...
Run Code Online (Sandbox Code Playgroud)
这是 manage.py,它是常规的 django,从 settings.py 加载 .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")
Run Code Online (Sandbox Code Playgroud)
当我manage.py
在我的 PC 上运行时,它会加载密钥并运行服务器,但 GitHub 给出了上述错误。如何阻止此错误发生?
Phy*_*Das 11
如果您已将 存储SECRET_KEY
在系统的环境变量中,则对于 GitHub 工作流程,您可以在 YAML 文件中添加虚拟环境变量。
settings.py应该如下所示
import os
...
SECRET_KEY = os.environ.get('SECRET_KEY') # Or the name by which you stored environment variable
...
Run Code Online (Sandbox Code Playgroud)
步骤如下:
第 1 步:生成一个虚拟对象SECRET_KEY
。你可以自己创建它
import secrets
print(secrets.token_hex(25))
Run Code Online (Sandbox Code Playgroud)
或者从这样的网站生成。
步骤 2:在您的 .github/workflows YAML 文件(例如 django.yml)中,添加以下内容
steps:
...
- name: Run Tests
env:
SECRET_KEY: your-genereated-secret_key
run: |
python manage.py test
Run Code Online (Sandbox Code Playgroud)
然后,在本地环境、生产环境和 GitHub 工作流程中使用相同版本的代码,一切都会正常工作。
归档时间: |
|
查看次数: |
3270 次 |
最近记录: |