url_for函数——快速寻找url
2021-02-16 07:20
标签:注意 反转 ima code view page _for ret main 我们已经知道,知道了url就可以找到对应的视图函数,那么现在问题来了,如果我们知道了视图函数,要怎么找到url呢?这时候我们就需要url_for函数了。 运行上面代码: 可以看到控制台打印出了hello_world函数的url。 当我们讲了模板以后,经常会遇到a标签比如 再看一个例子: 这时候进入 上面说的是没有参数的url_for,如果没有参数,可以直接 这时候url_for该怎么传呢? 我们先来看一下url_for的源码: 我们注意到url_for可以传“两个”参数: endpoint:结束点,即我们传的函数名 values:关键字参数即key=value形式 那我们现在就知道该怎么办了: 我们只需要像上面代码里一样,给url_for多传递一个参数即可,保存(Ctrl+s 以后不再强调了)以后,来到页面可以看到: 继续url_for的知识点 现在我们在mylist函数中的url_for多传一个参数,这时候会返回什么结果呢,执行代码可以看到: 看上面的代码,如果现在我想在login函数中获取title_id,该怎么获取呢?我们之前已经写过的,我们可以通过修改login函数: 这样,在页面访问 现在我们来说url_for的另一个优点,就是它会自动对你传递的内容进行编码: 如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。 页面对/进行了ASCII编码,/变成了%2F。这种机制就避免了url的混乱,比如我们地址是127.0.0.1:5000/login/,后面查询字符串中含有/,那地址就成了类似 大家千万不要忽视函数上面的 url_for函数——快速寻找url 标签:注意 反转 ima code view page _for ret main 原文地址:https://www.cnblogs.com/Chaqian/p/12976015.html
# coding: utf-8from flask import Flask, url_forimport flask
app = Flask(__name__) # type: Flaskapp.debug = True# 根目录@app.route(‘/‘)def hello_world():
return ‘Hello World!‘@app.route(‘/login/‘)def login():
print url_for(‘hello_world‘) return ‘success‘if __name__ == ‘__main__‘:
app.run()
我们都知道href里面放的是一个链接,试想现在我们判断用户是否登录成功,如果登录成功就跳转到p1页面,登录失败就跳转到p2页面,那么我们一般是不会再href里直接贴p1页面的url的,因为一旦p1页面地址改变,那么贴的url就会失效,试想你那么多代码,怎么可能记得住p1的url都在哪里用了呢?这时候就可以看到url_for的好处了,就是说我们会在href里放url_for我们需要反转的函数。
# coding: utf-8from flask import Flask, url_forimport flask
app = Flask(__name__) # type: Flaskapp.debug = True# 根目录@app.route(‘/‘)def hello_world():
return ‘Hello World!‘@app.route(‘/login/‘)def login():
return url_for(‘hello_world‘)@app.route(‘/list/‘)def mylist():
return url_for(‘login‘)if __name__ == ‘__main__‘:
app.run()
http://127.0.0.1:5000/list/
页面,就可以看到login的url了:url_for(‘函数名‘)
那如果我们构造的函数是:
@app.route(‘/login/
# coding: utf-8from flask import Flask, url_forimport flask
app = Flask(__name__) # type: Flaskapp.debug = True# 根目录@app.route(‘/‘)def hello_world():
return ‘Hello World!‘@app.route(‘/login/
# coding: utf-8from flask import Flask, url_forimport flask
app = Flask(__name__) # type: Flaskapp.debug = True# 根目录@app.route(‘/‘)def hello_world():
return ‘Hello World!‘@app.route(‘/login/
@app.route(‘/login/
127.0.0.1:5000/login/2/
页面显示的就是title_id。
# coding: utf-8from flask import Flask, url_forimport flask
app = Flask(__name__) # type: Flaskapp.debug = True# 根目录@app.route(‘/‘)def hello_world():
return ‘Hello World!‘@app.route(‘/login/
上面代码中,我们在mylist函数中给login函数传了一个title_id=‘/‘
,然后页面中看到:127.0.0.1:5000/login//
这种url形式明显是错误的,但是如果我们用url_for,那么地址 就会自动转换为127.0.0.1:5000/login/%2F
,如此一来就避免了url的错乱。@app.route()
,找了好几个代码显示样式,就是怕大家忽视这个问题。
以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。
文章标题:url_for函数——快速寻找url
文章链接:http://soscw.com/index.php/essay/55992.html