关于flask中static_folder 和 static_url_path参数理解
Posted 哦...
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于flask中static_folder 和 static_url_path参数理解相关的知识,希望对你有一定的参考价值。
Flask 在创建app的时候是用
app = Flask(__name__)
来创建的,不传入 static_folder参数的话 ,默认的静态文件的位置是在 static目录下。
我们可以进入 Flask的源码里面查看 ctrl+鼠标左键进入
这是Flask的 __init__源码(后面还有一些,我就选了需要的代码)
def __init__(
self,
import_name,
static_url_path=None,
static_folder='static',
static_host=None,
host_matching=False,
subdomain_matching=False,
template_folder='templates',
instance_path=None,
instance_relative_config=False,
root_path=None
):
_PackageBoundObject.__init__(
self,
import_name,
template_folder=template_folder,
root_path=root_path
)
if static_url_path is not None:
self.static_url_path = static_url_path
if static_folder is not None:
self.static_folder = static_folder
我们可以看到 static_folder 是默认为 static。
我们之所以能够访问到 static下面的静态文件,是因为注册了路由,就和flask的 app.route一样
我们现在查看下 注册路由的方法
if self.has_static_folder:
assert bool(static_host) == host_matching, 'Invalid static_host/host_matching combination'
self.add_url_rule(
self.static_url_path + '/<path:filename>',
endpoint='static',
host=static_host,
view_func=self.send_static_file
)
上代码
import flask
app=flask.Flask(__name__,static_url_path='/pp/2/4556565656',static_folder='1245487878awda')
@app.route('/')
def test_01():
return 'hello'
if __name__ == '__main__':
app.run()
代码目录
结果
好滴,上结论
我们发现static_folder是用来指代存放static文件的目录,这个文件是必须的存在的,static_url_path是我们再url里输入地址用来指向static文件的。相当于是一个参数指向的最终结果是static_folder
以上是关于关于flask中static_folder 和 static_url_path参数理解的主要内容,如果未能解决你的问题,请参考以下文章