最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Flask中的url_for()怎么用?

    正文概述    2020-05-28   405

    在Flask开发中常会url_for()函数,这个url_for()函数是用于构建指定函数的URL,而且url_for操作对象是函数,而不是route里的路径。

    Flask中的url_for()怎么用?

    如果route和函数名不一样而导致使用url_for()错误,千万不要去route找错误。 

    例如下面的代码:

    from flask import Flask, url_for
    app = Flask(\__name__)
    @app.route('/')
    def index():
        pass
    @app.route('/login')
    def LOGIN():
        pass
    with app.test_request_context():
        print(url_for('index'))
        print(url_for('login'))

    print(url_for('index'))没有报错,就是一个反斜杠;print(url_for('login'))报错,抛出BuildError异常:

    / 
    Traceback (most recent call last): 
    File “<\pyshell#12>”, line 3, in 
    print(url_for(‘login’)) 
    File “C:\Python35\lib\site-packages\flask\helpers.py”, line 332, in url_for 
    return appctx.app.handle_url_build_error(error, endpoint, values) 
    File “C:\Python35\lib\site-packages\flask\app.py”, line 1811, in handle_url_build_error 
    reraise(exc_type, exc_value, tb) 
    File “C:\Python35\lib\site-packages\flask_compat.py”, line 33, in reraise 
    raise value 
    File “C:\Python35\lib\site-packages\flask\helpers.py”, line 322, in url_for 
    force_external=external) 
    File “C:\Python35\lib\site-packages\werkzeug\routing.py”, line 1758, in build 
    raise BuildError(endpoint, values, method, self) 
    werkzeug.routing.BuildError: Could not build url for endpoint ‘login’. Did you mean ‘index’ instead?

    把login修改为LOGIN:

    with app.test_request_context():
        print(url_for('index'))
        print(url_for('LOGIN'))

    打印正常:

    / 
    /login

    参数

    url_for()也可以附带一些参数,比如想要完整的URL,可以设置_external为Ture:

    url_for('.static',_external=True,filename='pic/test.png')

    这样返回的url是http://localhost/static/pic/test.png

    参数示例:

    endpoint 

    URL的端点(即函数的名字)

    values 

    URL的变量参数

    _external 

    如果设置为True,则生成一个绝对路径URL

    _scheme 

    一个字符串指定所需的URL方案。_external参数必须设置为True,不然会抛出ValueError。

    _anchor 

    如果设置了这个则给URL添加一个mao

    _method 

    如果设置这个则显示地调用这个HTTP方法


    起源地下载网 » Flask中的url_for()怎么用?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元