Python 如何在浏览器地址栏中显示@,而不是将其编码为%40(urlencode)?

Python 如何在浏览器地址栏中显示@,而不是将其编码为%40(urlencode)?,python,html,url,flask,Python,Html,Url,Flask,我曾尝试在Python3(Flask)项目中使用这一行,即UTF-8编码: @app.route('/@<username>', methods=['GET', 'POST']) 如何在浏览器地址栏中显示原始“@”?谢谢 您是否正在使用url\u作为来自python代码的源代码?这种情况下的一种方法是在url_的返回值为 示例代码: from flask import Flask, url_for, redirect import urllib app = Flask(__name

我曾尝试在Python3(Flask)项目中使用这一行,即UTF-8编码:

@app.route('/@<username>', methods=['GET', 'POST'])

如何在浏览器地址栏中显示原始“@”?谢谢

您是否正在使用url\u作为来自python代码的源代码?这种情况下的一种方法是在url_的返回值为

示例代码:

from flask import Flask, url_for, redirect
import urllib
app = Flask(__name__)

@app.route("/")
def hello():
    return redirect(urllib.unquote(url_for('user', username='test')))

@app.route('/@<username>', methods=['GET', 'POST'])
def user(username):
    return "Hello %s" % (username)

if __name__ == "__main__":
    app.run()
从烧瓶导入烧瓶,url\u为,重定向
导入URL库
app=烧瓶(名称)
@附件路线(“/”)
def hello():
返回重定向(urllib.unquote(url_代表('user',username='test'))
@app.route('/@',方法=['GET','POST'])
def用户(用户名):
返回“Hello%s”%(用户名)
如果名称=“\uuuuu main\uuuuuuuu”:
app.run()

禁用字符转义是讨论过的

PS,当我在浏览器地址栏中键入'example.com/@username'时,@显示为正常@。我已经试过了你的示例代码,它也适用于手工打字。我的问题是,当从模板文件呈现此路由时,例如.href=“{url_for('.user',username=username)}”,它会在新页面的地址栏上显示@为%40。此链接有用吗?谢谢Kevin,您推荐的链接为我提供了帮助!
from flask import Flask, url_for, redirect
import urllib
app = Flask(__name__)

@app.route("/")
def hello():
    return redirect(urllib.unquote(url_for('user', username='test')))

@app.route('/@<username>', methods=['GET', 'POST'])
def user(username):
    return "Hello %s" % (username)

if __name__ == "__main__":
    app.run()