分享

flask第八篇——url_for【1】

 孟船长 2022-02-24

    我们已经知道,知道了url就可以找到对应的视图函数,那么现在问题来了,如果我们知道了视图函数,要怎么找到url呢?这时候我们就需要url_for函数了。

# coding: utf-8

from flask import Flask, url_for
import flask app = Flask(__name__)  # type: Flask
app.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()

运行上面代码:

可以看到控制台打印出了hello_world函数的url。

当我们讲了模板以后,经常会遇到a标签比如<a href=''>我们都知道href里面放的是一个链接,试想现在我们判断用户是否登录成功,如果登录成功就跳转到p1页面,登录失败就跳转到p2页面,那么我们一般是不会再href里直接贴p1页面的url的,因为一旦p1页面地址改变,那么贴的url就会失效,试想你那么多代码,怎么可能记得住p1的url都在哪里用了呢?这时候就可以看到url_for的好处了,就是说我们会在href里放url_for我们需要反转的函数。

再看一个例子:

# coding: utf-8

from flask import Flask, url_for
import flask app = Flask(__name__)  # type: Flask
app.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了:

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多