我已将我的SECRET_KEY值从我的设置文件中移出,并在我加载virtualenv时设置它.我可以确认该值是否存在python manage.py shell.
当我运行Django控制台时,SECRET_KEY它应该丢失.所以在首选项中,我转到Console> Django Console并加载SECRET_KEY适当的值.我回到Django控制台,SECRET_KEY就在那里.
正如所料,我还没有运行manage.py任务,因为它还没有找到SECRET_KEY.所以我进入Run> Edit Configurations SECRET_KEY进入Django服务器和Django测试,并进入项目服务器.重启Pycharm,确认密钥.
当我运行manage.py任务时runserver,我仍然可以KeyError: 'SECRET_KEY'.
我在哪里放这把钥匙?
这是代码:
def g():
try:
yield 1
yield 2
yield 3
except GeneratorExit:
yield 4
gen = g()
print(gen.__next__())
Run Code Online (Sandbox Code Playgroud)
如果你运行它,你会看到:
1
Exception ignored in: <generator object g at 0x00000216BB546A98>
RuntimeError: generator ignored GeneratorExit
Run Code Online (Sandbox Code Playgroud)
我理解发生了什么,但我找不到这个警告是什么类型的消息.
看起来它不是logging警告(我无法删除它设置日志记录级别).它也没有warnings警告(它看起来不像我们在通话时得到的warnings.warn).
我认为它可以与异常相关联,但我无法理解它sys.excepthook,而msg本身就消失了:
import sys
def hook(exc_type, exc_val, tb):
print(exc_type, exc_val, tb) # Nothing prints, while msg disappear
sys.excepthook = hook
Run Code Online (Sandbox Code Playgroud)
我怎么能抓住这个警告?
如何手动创建此类警告?