5. 链接辅助函数 与 使用静态文件

来源:互联网 发布:软件著作权 代码格式 编辑:程序博客网 时间:2024/05/04 18:43

1、链接辅助函数url_for()
为什么要有这个函数?待会再说,先用起来。
首先,在hello.py中from flask import Flask, render_template后面加上url_for,然后在定义的index()函数中定义变量

img=url_for('static', filename='favicon.ico')     # url_for的参数,'static'表示文件类型,filename用来存文件在static文件夹中的路径
return render_template('index.html', img=img)     #末尾加上img=img

接着,去模板文件index.html中设置图片显示,在内容块({% block page_content %})中添加

<img src="{{img}}" />

然后重启服务器,在浏览器中就可以看到图片了(就是那个小辣椒)。
这里写图片描述
再来看为什么的问题,树上这么写的:
”在模板中直接编写简单路由的URL链接不难,但对于包含可变部分的动态路由,在模板中构建正确的URL就很困难。而且,直接编写URL会对代码中定义的路由产生不必要的依赖关系。如果重新定义路由,模板中的链接可能会失效。为了避免这些问题,Flask提供了url_for()辅助函数。“
对这段话并不理解,可能是因为我定义URL过程中没遇到那些问题。存疑,以后再回来理解。


再补充点url_for()的用法:
1. 直接以视图函数作参数,返回对应的URL。
比如当前的hello.py中调用url_for(‘index’)则返回/。
调用url_for(‘index’, _external=True)返回的则是绝对地址,http://localhost:5000/。
2. 使用url_for()生成动态地址时,将动态部分作为关键字参数传入。
如:url_for(‘user’, name=’john’, _external=True)的返回结果是http://localhost:5000/user/john。
3. 添加额外参数到查询字符串中。
如:url_for(‘index’, page=2)的返回结果是/?page=2。


2、使用静态文件
静态文件,指不含变量、不会被脚本或浏览器改动的文件,比如图片/HTML文件/CSS文件/javascript源码等。

Flask处理静态文件要注意两点:
一是静态文件位置,要存放在Python脚本同级的static文件夹中,如果需要,可以建立子文件夹;
二是处理方法,既可以在脚本中编码涉及,也可以在模板文件中涉及。

用法就是简单的文件调用,可以直接通过文件路径访问,也可以用url_for()函数访问。

1 0
原创粉丝点击