Flask Web 开发 链接 url_for 函数

下面讲一个非常重要的功能

url_for函数

其实,在路由内部,url的链接并不是直接访问到响应的页面的

如下图,他是分为2个页面来进行的

首先通过url链接到endpoint,再通过endpoint来链接试图函数

而这个endpoint一般就是路由函数的名字

需要提一点的是,在创建应用实例的时候,他就会自动默认生成一个url静态路由目录,就是指向静态文件的文件夹static。

| url rule | endpoint | view_function |<--------------对应关系-------------->| /static | static | Flask.send_static_file


当然,如果你的静态文件不是放在static中,你可以自定义路径来访问他

下面的示例中,将应用下的assets文件夹注册为静态目录/assets:

app = Flask(name,static_folder='assets',static_url_path='/assets') 当应用运行后,通过URL/assets/main.css就可以访问assets文件夹下的 main.css文件了。

这时候他们的url_map和view_function关系就变成了:

| url | endpoint | view_function |<-------------------对应关系------------------>| /assets | static | Flask.send_static_file |

Flask Web 开发 链接 url_for 函数_第1张图片



url_for() 函数最简单的用法是以视图函数名(或者app.add_url_route() 定义路由时使用
的端点名)作为参数,返回对应的URL。例如,在当前版本的hello.py 程序中调用url_
for('index') 得到的结果是/。调用url_for('index', _external=True) 返回的则是绝对地
址,在这个示例中是http://localhost:5000/。


使用url_for() 生成动态地址时, 将动态部分作为关键字参数传入。例如,url_for
('user', name='john', _external=True) 的返回结果是http://localhost:5000/user/john。
传入url_for() 的关键字参数不仅限于动态路由中的参数。函数能将任何额外参数添加到
查询字符串中。例如,url_for('index', page=2) 的返回结果是/?page=2。



你可能感兴趣的:(Flask,Python,---Flask,web,开发)