Flask中url_for的使用传参,及多个参数
flask.url_for(endpoint, **values) 参数: endpoint - URL的端点(函数名称) values - URL规则的变量参数 _external - 如果设置为True,则生成绝对URL。服务器地址可以通过SERVER_NAME配置变量更改,默认为localhost。 _scheme - 指定所需URL方案的字符串。该_external 参数必须设置True或ValueError提高。默认行为使用相同的方案作为当前请求,或 PREFERRED_URL_SCHEME从应用配置,如果没有请求上下文可用。从Werkzeug 0.10开始,这也可以设置为空字符串以构建协议相对URL。 _anchor - 如果提供,则将其作为锚添加到URL。 _method - 如果提供,则显式指定HTTP方法。
示例
from flask import Flask,url_for app = Flask(__name__) @app.route('/index/') def index(): return f'Hello !!' @app.route('/home/<int:uid>/') def home(uid): return f'Hello !!{uid}' @app.route('/show_url') def show_url(): # url = url_for('home') # 第1个参数是函数的名字 # url = url_for('home',uid=1001) # 第2个参数默认开始匹配路径参数了 url = url_for('home',uid=1001,addr='beijing') # 第2个参数默认开始匹配路径参数了,匹配不上就会以查询参数进行传递 return f'反向查找到的URL地址:{url}' if __name__ =='__main__': app.run(debug=True)
url反转
什么是url反转:通过视图函数获得url的方法就叫做url反转url反转的作用:
a. 页面重定向会用到
b. 模板页会用到
c. 加载静态文件
url反转的方法:
#引入url_for from flask import Flask,url_for app = Flask(__name__) @app.route('/') def index(): #url_for 中加入视图函数名称,如果有参数就加上参数 print(url_for('my_list')) print(url_for('article',id='abc')) return 'Hello World!' @app.route('/list/') def my_list(): return 'list' @app.route('/article/<id>/') def article(id): return u'您请求的id是:%s' % id if __name__ == '__main__': app.run(debug=True)
<!--加载css文件--> <link href='{{ url_for('static',filename='/css/cssfile.css') }}'
页面跳转和重定向
#引入redirect和url_for from flask import Flask,redirect,url_for app = Flask(__name__) @app.route('/') def index(): #获得url地址 login_url=url_for('login') #调用redirect,参数为重定向的url return redirect(login_url) @app.route('/login/') def login(): return u'登录' if __name__ == '__main__': app.run(debug=True)