flask web 模板中的url_for()


有多个路由的程序需要连接不同的网页链接,例如导航条

模板中构建正确的动态url较为困难,如果重定义路由,模板中的链接失效

url_for()函数:

使用url映射中保存的信息生成url

用法:

用视图函数名作为参数,返回对应的url

例如url_for(‘index’)得到的结果是”/”

utl_for(‘index’,external=True)

得到的是绝对地址 例如:http://localhost:5000

生成连接程序内放入不同路由的链接时,使用相对地址吗

使用url_for()生成动态地址:

动态部分作为参数传入

url_for(‘user’ name =’wang’,external=True)

返回的结果:

http://localhost:5000/user/wang

url_for()的参数:

函数可将任何额外的参数添加查询字符串中 例如: url_for(‘index’,page = 2)

静态文件

web程序不仅由python代码和模板组成,还包括静态文件 例如:代码中引用的图片,javaScripts代码,CSS等

对静态文件的引用被当做特殊的路由

/static/<filename>

调用url_for('static',filename='css/styles.css',_external=True) 得到的结果: http://localhost:5000/static/css/styles.css

默认情况下,flask在程序根目录下名为static的子目录下寻找静态文件 服务器收到url后会生成响应,包括css/styles.css中的内容

附件: