flask:从命令行执行自定义命令时报错:Unable to build URLs outside an active request without 'SERVER_NAME' configured. Also configure 'APPLICATION_ROOT' and 'PREFERRED_URL_SCHEME' as needed.
一,问题
报错信息:
Unable to build URLs outside an active request without 'SERVER_NAME' configured.
Also configure 'APPLICATION_ROOT' and 'PREFERRED_URL_SCHEME' as needed.
二,原因
代码中用到了url_for,
如果你在命令的代码中调用了 url_for('endpoint', _external=True) 来生成绝对路径(带有域名的完整 URL),Flask 就会抓瞎:
它不知道该用什么域名、什么协议来拼接这个 URL,因此抛出该异常
三,解决:
在config.py中定义SERVER_NAME即可,
回到我的问题:
我在config中定义了SERVER_NAME,
如下:
SERVER_NAME = os.environ.get('API_DOMAIN_URL')
但.env中的API_DOMAIN_URL被注释掉了,
所以遇到了报错,
大家在实际开发中要各个环节都检查到
浙公网安备 33010602011771号