当路由简单时,可直接在链接中编写路由
如后台:
@app.route('/')def hello_world():return render_template('index.html')@app.route('/user')def user():return 'zxy'
index.html页面中
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><a href="/user">点击</a></body></html>
当点击连接时,会跳转到@app.route('/user')进行处理,注意此时是跳转到路由下(也就是:http://127.0.0.1:5000/user),而不是跳转到@app.route('/user')下的视图函数
对于包含可变部分的动态路由,在模板中构建正确的 URL 就很困难。而且,直接编写 URL 会对代码中定义的路由产生不必要的依赖关系。如果重新定义路由,模板中的链接可能会失效为了避免这些问题,Flask 提供了 url_for() 辅助函数。
url_for()函数
作用
- 给指定的函数构造 URL(根据视图函数名称得到当前所指向的url)
- 访问静态文件(CSS / JavaScript 等)。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问
用法
以视图函数名(或者 app.add_url_route() 定义路由时使用的端点名)作为参数,返回对应的 URL
如后台:
@app.route('/')def hello_world():return render_template('index.html')@app.route('/user')def user3():return 'zxy'
注:此处@app.route('/user')的url名为user与对应的视图函数名user3不对应,这是为了接下来演示区别,实际开发中尽可能保持一致
前端:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><a href="{{ url_for('user3') }}">点击</a></body></html>
要在href中使用url_for,语法{{url_for('视图函数名')}}
参数
url_for('视图函数名',变量名=变量值)
如何在flask后台获取url_for传递回来的参数:使用request.args.get(``'变量名'``)
如
#前端<a href="{{ url_for('user3',age=15) }}">点击</a>#flask后台@app.route('/user')def user3():age = request.args.get('age')print(age) #15
