有多个路由的程序需要连接不同的网页链接,例如导航条
模板中构建正确的动态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中的内容