重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
创新互联是一家集网站建设,前锋企业网站建设,前锋品牌网站建设,网站定制,前锋网站建设报价,网络营销,网络优化,前锋网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。这篇文章将为大家详细讲解有关怎么用Flask中的url_for(),文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
在Flask开发中常会url_for()函数,这个url_for()函数是用于构建指定函数的URL,而且url_for操作对象是函数,而不是route里的路径。
如果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()就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。