20180909:关于使用url_for的问题

在学习08.4-1 前台布局-会员登录页面搭建.wmv时,在静态页面中使用了“url_for”功能,但一开始未明白其作用。

url在视图函数中的使用(即本身的标准作用):

url_for 本身功能实际上的作用:输入的函数名=>url_for(函数名)=>得到函数头顶上的app.route里面的东西
url_for就是用来重定向的,但是可以抵抗@app.route(x)里面的名字被修改成y以后redirect(x)也需要对应修改成redirect(y)**

from flask import Flask,request,url_for
app=Flask(__name__)
@app.route('/test')
def query_user():
    '''
    http://127.0.0.1:5000/test?id=123
    '''
    id = request.args.get('id')
    return 'query user:'+id

#url_for的作用:输入的函数名=>url_for(函数名)=>得到函数头顶上的app.route里面的东西☆☆☆☆☆☆
#url_for就是用来重定向的,但是可以抵抗@app.route(x)里面的名字被修改成y以后redirect(x)也需要对应修改成redirect(y)
@app.route('/query_url')
def query_url():
    '''
    反导出 query_user函数名对应的url地址
    '''
    print url_for('query_user')
    return url_for('query_user')

参考:https://blog.csdn.net/appleyuchi/article/details/79371595

普通静态模板中使用url_for

实际上也和本身作用差不多,之前在视图函数中使用url_for,是实现从视图函数中跳转到另一个url。现在我为大家演示如何在模板中使用url_for,实现在页面点击文字,跳转至另一个页面。其实很简单
1.首先通过视图函数,渲染出一个页面

@app.route('/')
def index():
    return render_template('index.html')

2.在index.html这个文件中,添加

<p><a href="{{ url_for('login') }}">登录</a></p>

3.这样,点击 登录 字样,通过login()对应的url跳转到另一个页面了(前提是这个页面存在)

在静态模板static中使用url_for

但在静态web页中static目录用,稍有变化。
简单的说:静态文件中用url_for(“static”)实际上就是被flask 当做了特殊的路由处理

web程序不仅由python代码和模板组成,还包括静态文件 ,例如:代码中引用的图片,javaScripts代码,CSS等
对静态文件static目录的引用,是被当做特殊的路由处理的 ,因为,默认情况下,flask在程序根目录下名为static的子目录下寻找静态文件

/static/<filename>

调用 url_for('static',filename='css/styles.css',_external=True)
得到的结果:http://localhost:5000/static/css/styles.css
默认情况下,flask在程序根目录下名为static的子目录下寻找静态文件,服务器收到url后会生成响应,包括css/styles.css中的内容

参考链接:https://blog.csdn.net/github_40094105/article/details/78169937?locationNum=9&fps=1

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值