首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >flask第八篇——url_for【1】

flask第八篇——url_for【1】

作者头像
孟船长
发布2018-05-21 10:50:56
发布2018-05-21 10:50:56
7220
举报

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

代码语言:javascript
复制
# 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我们需要反转的函数。

再看一个例子:

代码语言:javascript
复制
# 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了:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档