繁体   English   中英

是否可以在没有请求上下文的情况下获得 flask 应用程序 url?

[英]Is it possible to get flask app url without request context?

这是一个 URL 缩短器应用程序。 应用结构如下:应用结构

forms.py中,我有自定义验证器: validate_url()validate_short_url()使用APP_URL APP_URL = "localhost:5000/"

我可以在本地运行它,但是在很多情况下应用程序域可以更改:

  • 运行docker镜像;
  • 托管(例如在 Heroku 上);
  • 更改端口值;

因此,每次我以不同方式运行此 flask 应用程序时,我都必须更改APP_URL的值,这不是最佳实践

总而言之,我想使用flask.Request.url_root 之类的东西来避免一次又一次的手动编写

当我尝试使用flask.request ,我得到以下回溯:

RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

forms.py发布在这里

该应用程序已经托管在 Heroku 上,这是链接: https://qysqa.herokuapp.com/

解决方案是在自定义验证器( validate_url()validate_short_url() )中使用flask.request ,其中应用上下文被传递

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM