Flask 中的 `url_for` 使用指南

在 Flask 中,url_for 是一个强大的工具,用于动态生成 URL。相比硬编码路径,url_for 更加灵活且便于维护。以下是其常见用法和技巧。


基本用法

url_for 根据 视图函数名称 和 动态参数 生成 URL。例如:

python 复制代码
from flask import Flask, url_for

app = Flask(__name__)

@app.route('/hello/<name>')
def hello(name):
    return f"Hello, {name}!"

@app.route('/')
def index():
    hello_url = url_for('hello', name='World')  # 动态生成 URL
    return f'<a href="{hello_url}">Go to Hello</a>'

if __name__ == '__main__':
    app.run(debug=True)

访问 / 时,生成的链接为 /hello/World。


动态参数和查询字符串

可以为 URL 动态添加参数或查询字符串:

python 复制代码
url_for('hello', name='World', page=1)
# 输出: /hello/World?page=1

生成完整 URL

设置 _external=True,可以生成完整的外部 URL:

python 复制代码
url_for('hello', name='World', _external=True)
# 输出: http://127.0.0.1:5000/hello/World

部署在 HTTPS 环境下时,URL 会自动使用 https://。


配置自定义主机名

通过 SERVER_NAME 配置主机和端口:

python 复制代码
app.config['SERVER_NAME'] = 'example.com:8000'
url_for('hello', name='World', _external=True)
# 输出: http://example.com:8000/hello/World

总结

url_for 的优势:

  1. 动态生成路径,避免硬编码。
  2. 支持动态参数和完整 URL。
  3. 自动适配协议和主机,适合 API 和外部服务。

通过 url_for,你可以轻松构建灵活的 Flask 应用,让代码更优雅高效!

相关推荐
特立独行的猫A14 分钟前
用仓颉语言 cj-tauri 框架,五分钟给娃做了个鸿蒙形近字游戏
java·后端·python
码事漫谈3 小时前
我花了一周时间,看AI公司怎么"管"AI,结果越看越后背发凉
后端
大可不必了5 小时前
03 函数定义和调用
开发语言·python
承渊政道6 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛6 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
GISer_Jing6 小时前
Agent核心内容
后端·ai·langchain
imgsq6 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
budingxiaomoli7 小时前
Spring统一功能处理
java·后端·spring
eggwyw7 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
2601_967979128 小时前
纯手写:Python安装pip完整教程,搞了几小时,终于成功
python·教程·pip·安装·包管理