Advertisement

为什么在flask项目中使用__nam__ == "__main__"

阅读量:

__name__ == "__main__"是什么意思? 为什么要在flask项目后面加上这一段

1. 什么是__name__ == "__main__"

  1. 基本上在每个python文件的入口都会加上这一句, 表示这是程序的执行入口
  2. __name__ == "__main__"下的程序, 表示只能在入口文件中执行
  3. 如果当前模块(带有__name__ == "__main__"), 是被导入执行的, 那么__name__ == "__main__"下面的文件就 不会执行

2. 为甚么在flask项目中加上这个入口, 并在这个入口下面启动服务器

复制代码
    if __name__ == '__main__':
    app.run()
    
    
      
      
    
    AI写代码

我们在 开发阶段 使用的服务器是 flask自身自带 的一个相对简单的配置。
当我们将项目迁移到 生产阶段 时,我们通常会采用 nginx+uwsgi 这一配置模式:其中 nginx 作为前体服务器负责接收浏览器的所有请求,并将请求转发给 uwsgi 进行处理。
在生产环境中,我们不再依赖直接运行命令的方式来启动服务,而是通过调用 uwsgi 加载项目模块的方式启动服务流程。这样一来,在项目主文件中不再设置 __name__ == "__main__" 设置为默认运行点。因此,在生产环境中直接调用 app.run() 是无法正常工作的。
若在模块内部不设置 __name__ == "__main__" 设置,则在生产环境中将同时运行 flask 自带的简单服务器和 nginx+uwsgi 两个服务节点配置,默认情况下这是不允许的操作。

全部评论 (0)

还没有任何评论哟~