如何使用 Jinja2 & url_for 为端点设置协议(http、ws 等)

How to set the protocol (http, ws etc.) for the end-point using Jinja2 & url_for

我正在尝试使用 Python/Jinja2 中的 url_for(...) 函数为网络套接字创建端点。

如何让我的模板中的 url_for(...) 使用 'ws'(网络套接字)协议而不是 'http'?

url_for 有两个属性可用于此目的:

  • _external = True 用于生成绝对 URLs
  • _scheme = ''用于设置一个空的URL方案(不直接支持wswss

之后,只需将 ws:wss: URL 方案字符串放在模板中的 url_for 调用之前,例如:

wss:{{ url_for('websocket_endpoint', _external=True, _scheme='') }}

这将产生:

wss://yourdomain.com/websocket_endpoint