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)

 

 

感谢分享:https://blog.51cto.com/u_11739124/3017688

 

posted @ 2023-06-04 21:46  浩浩学习  阅读(1782)  评论(0编辑  收藏  举报