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 应用,让代码更优雅高效!

相关推荐
Aska_Lv16 分钟前
业务架构设计---硬件设备监控指标数据上报业务Java企业级架构
后端·架构
m0_7482522319 分钟前
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
vscode·python·node.js
m0_7482552627 分钟前
Spring Boot 3.x 引入springdoc-openapi (内置Swagger UI、webmvc-api)
spring boot·后端·ui
小华同学ai31 分钟前
吊打中文合成!这款开源语音神器效果炸裂,逼真到离谱!
前端·后端·github
梓羽玩Python33 分钟前
太牛了!OWL:Manus 最强开源复现,开源框架GAIA基准测试中排第一!
人工智能·python
语落心生38 分钟前
算法计算与训练如何支持低开销流式计算? deepseek背后的smallpond需要些新改造
后端
2301_7644413339 分钟前
python实现的生态模拟系统
开发语言·python·pygame
m0_7482417043 分钟前
Python毕业设计选题:基于django+vue的智能租房系统的设计与实现
python·django·课程设计
小胖墩有点瘦44 分钟前
基于RNN+微信小程序+Flask的古诗词生成应用
微信小程序·小程序·flask
m0_748244961 小时前
Python毕业设计选题:基于Python的社区爱心养老管理系统设计与实现_django
python·django·课程设计