Flask 源码(1)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask 源码(1)相关的知识,希望对你有一定的参考价值。
参考技术A 项目下只有 json 一个文件目录,其他文件都是平铺在一级目录下的。
__init__.py 将一个文件目录作为 package 处理 ,命令 python flask 优先执行此文件; __main__.py 将一个文件目录作为 package 执行 ,命令 python -m flask 优先执行此文件, -m 是以 module 方式启动。
参考 官网 说明。
上文 python flask 和 python -m flask 有什么区别?
python 执行都是从 sys.path 开始查找资源
所以,一般会在 __init__.py 中定义入口函数 main() ,这样包运行会进入 main 方法,模块运行在 __init__.py 执行 main 方法,能够统一入口。
引入了 markupsafe 和 werkzeug 的三方依赖,其余项目资源都用相对路径方式引入,提供更好的二方包管理,避免因为路径造成的资源引用错误。同时外部引用的时候,即 from flask import xxx 可以方便 python 第一时间找到对应资源,另外给出了二方包的版本信息。
外部可以通过 flask --version 来查看安装的二方包版本。
统一了项目入口,包启动的时候直接执行 __main__.py ,模块启动的时候执行 __init__.py 没有项目启动相关逻辑,再次执行 __main__.py 的时候进入到命令行启动的入口函数 main()
综上, flask 项目给出了非常值得借鉴的二方包入口管理思路。
以上是关于Flask 源码(1)的主要内容,如果未能解决你的问题,请参考以下文章