无法在 Flask 中使用 html 标签内的 url_for 转到另一个页面
Can not go to another page using url_for inside html tag in Flask
我无法从 index
页面转到 about_me
页面。
错误:
The requested URL was not found on the server.
并得到 url 喜欢 "http://127.0.0.1:5000/%7B%7B%20url_for('about')%20%7D%7D"
。
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return '''
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<p>welcome home</p>
<a href="{{ url_for('about_me') }}">about</a>
</body>
</html>
'''
@app.route('/about')
def about_me():
return 'about me'
if __name__ == '__main__':
app.run(debug=True)
您用于插入 url_for 关于我页面的格式,即:
<a href={{url_for('about_me')}}">about</a>
只能在 Jinja 模板中使用。这些模板在返回响应之前由模板引擎处理,在处理过程中,带有两个大括号 {{ something }}
的符号被识别和解释不同。
然而,在这里,您没有在 Jinja 模板中使用此表示法,而是在普通字符串中使用它,该字符串未经过处理,因此没有任何内容被替换。
实现所需内容的正确方法,在本例中是参数化字符串并通过格式化传递 link。例如:
@app.route('/')
def index():
return '''
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<p>welcome home</p>
<a href="{about_me}">about</a>
</body>
</html>
'''.format(about_me=url_for('about_me'))
希望对您有所帮助!
我无法从 index
页面转到 about_me
页面。
错误:
The requested URL was not found on the server.
并得到 url 喜欢 "http://127.0.0.1:5000/%7B%7B%20url_for('about')%20%7D%7D"
。
from flask import Flask, redirect, url_for
app = Flask(__name__)
@app.route('/')
def index():
return '''
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<p>welcome home</p>
<a href="{{ url_for('about_me') }}">about</a>
</body>
</html>
'''
@app.route('/about')
def about_me():
return 'about me'
if __name__ == '__main__':
app.run(debug=True)
您用于插入 url_for 关于我页面的格式,即:
<a href={{url_for('about_me')}}">about</a>
只能在 Jinja 模板中使用。这些模板在返回响应之前由模板引擎处理,在处理过程中,带有两个大括号 {{ something }}
的符号被识别和解释不同。
然而,在这里,您没有在 Jinja 模板中使用此表示法,而是在普通字符串中使用它,该字符串未经过处理,因此没有任何内容被替换。
实现所需内容的正确方法,在本例中是参数化字符串并通过格式化传递 link。例如:
@app.route('/')
def index():
return '''
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
<p>welcome home</p>
<a href="{about_me}">about</a>
</body>
</html>
'''.format(about_me=url_for('about_me'))
希望对您有所帮助!