You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中Celery Broker URL含#报错,求有效转义方法

解决Celery AMQP Broker URL中密码含#的解析错误

嘿,这个问题我之前踩过一模一样的坑!你碰到的ValueError: invalid literal for int() with base 10: 'pass',本质是URL解析器把密码里的#当成了片段标识符(锚点)的起始符号——它误以为#后面的内容是URL的锚点部分,所以把pass错误识别成了端口号去转成整数,自然就炸了。

你之前试的u""、r""或者直接加\转义,都是Python字符串层面的处理,根本没解决URL语法层面的特殊字符问题,所以完全没用。正确的解法是对#做URL编码,#对应的URL编码值是%23。

把你的Broker URL改成下面这样就能正常运行了:

app = Celery('myapp', broker='amqp://user:pass%231@localhost:5672//', backend='rpc://', include=['myapp.tasks'])

顺带提一句:URL里的特殊字符(比如#、@、&、空格这些)都需要用百分号编码转义,这样解析器才会把它们当成普通字符处理,不会触发特殊语法逻辑。

内容的提问来源于stack exchange,提问作者Zany

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:46:30