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被注释掉了,
所以遇到了报错,
大家在实际开发中要各个环节都检查到

 

posted @ 2026-07-17 14:26  刘宏缔的架构森林  阅读(3)  评论(0)    收藏  举报