nginx、uwsgi搭建web服务器,python 的os.environ.get()无法获取到环境变量

HymanLiuTS 2017-03-11 05:22:53
用nginx、uwsgi和flask搭建了一个web服务器,但是发现os.environ.get()无法获取环境变量了,直接在终端用os.environ.get()是可以的,我猜应该是uwsgi服务器没有加载系统的环境变量的缘故,怎么解决?????找了半天了,都没找到资料。。。。。
...全文
642 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoul945 2017-08-25
  • 打赏
  • 举报
回复
其实在Flask Web开发17.5.2章节中有解决方案,在项目顶级目录下添加配置信息文件.env,然后在mange.py最开始处读取配置信息到环境变量os.enviro中 if os.path.exists('.env'): print('Importing environment from .env...') for line in open('.env'): var = line.strip().split('=') if len(var) == 2: os.environ[var[0]] = var[1] .env配置内容如下: MAIL_USERNAME=123456789@qq.com MAIL_PASSWORD=abcdefg FLASK_CONFIG=development SECRET_KEY=secretstring 我自己也在这里找了几个小时问题,最终解决,特地来回复下,另外推荐下个人自己的小站 www.zhoulee.top 完全使用根据Flask Web开发 共同学习
CDSoftwareWj 2017-03-23
  • 打赏
  • 举报
回复
flask 官方也是要求你写到 config.py里,还有好多flask插件也需要在这个文件里设置,你非要写到系统环境变量里,这不是找事么 flask-sqlalchemy插件配置写config.py里多方便
CDSoftwareWj 2017-03-23
  • 打赏
  • 举报
回复
配置写 py 文件里才是正路,我的 flask相关配置在 flask 指定的 config.py 里, 系统自己的配置在 app_config.py里,这样放那里,在什么环境下都没有问题 而且python自己引用和使用也非常方便 import进来直接就当常量用了
HymanLiuTS 2017-03-23
  • 打赏
  • 举报
回复
引用 7 楼 CDSoftwareWj 的回复:
flask 可以直接载入 config.py 配置文件,进行 flask设置,这东西和uwsgi一毛关系都木有 那你不用 uwsgi 部署 换 Gunicorn 是不是你还要找 Gunicorn的配置? 系统难道不是flask自成体系吗?不需要和部署环境有关吧
我之前采用的是flask自带的那个cgi服务器调试,把数据库的账户和密码放到了操作系统的环境变量里,能够正常获取;后面部署到云服务器中了,采用flask+uwsgi+nginx,但是莫名奇妙获取不到系统的环境变量了。现在只能直接写到config.py里面
CDSoftwareWj 2017-03-23
  • 打赏
  • 举报
回复
flask 可以直接载入 config.py 配置文件,进行 flask设置,这东西和uwsgi一毛关系都木有 那你不用 uwsgi 部署 换 Gunicorn 是不是你还要找 Gunicorn的配置? 系统难道不是flask自成体系吗?不需要和部署环境有关吧
CDSoftwareWj 2017-03-23
  • 打赏
  • 举报
回复
你的意思是不是如果不部署uwsgi,你的程序就跑不起来连接不上数据库????那你是怎么开发并测试的????
CDSoftwareWj 2017-03-23
  • 打赏
  • 举报
回复
引用 3 楼 lzhui1987 的回复:
[quote=引用 2 楼 CDSoftwareWj 的回复:] 我都用flask写了好几年Web了,发布也是用的uwsgi,我一次都没遇到过需要用 os.environ.get() 的时候,你要这个做什么? 有什么需求是不是有其它方案?
我是要把数据库连接信息什么的放到环境变量里面,但是 os.environ.get() 读取不到,现在只能放到本地文件了。。你用了这么久flask,请问lask中怎么获取uwsgi中配置的参数啊,能不能将数据库连接信息通过uwsgi的配置传给flask??[/quote] flask为什么要用 uwsgi的设置???
HymanLiuTS 2017-03-17
  • 打赏
  • 举报
回复
引用 1 楼 uiuiy1 的回复:
不明白 nginx、uwsgi跟python 取环境变量有什么影响? 只否你的flask服务根本没启动? 看进程,放代码
是启动了的,地址:http://www.codenest.cn/,这个问题我在网上查好像的确是有的,但是没找到这是怎么回事,怎么解决。。。
HymanLiuTS 2017-03-17
  • 打赏
  • 举报
回复
引用 2 楼 CDSoftwareWj 的回复:
我都用flask写了好几年Web了,发布也是用的uwsgi,我一次都没遇到过需要用 os.environ.get() 的时候,你要这个做什么? 有什么需求是不是有其它方案?
我是要把数据库连接信息什么的放到环境变量里面,但是 os.environ.get() 读取不到,现在只能放到本地文件了。。你用了这么久flask,请问lask中怎么获取uwsgi中配置的参数啊,能不能将数据库连接信息通过uwsgi的配置传给flask??
CDSoftwareWj 2017-03-15
  • 打赏
  • 举报
回复
我都用flask写了好几年Web了,发布也是用的uwsgi,我一次都没遇到过需要用 os.environ.get() 的时候,你要这个做什么? 有什么需求是不是有其它方案?
屎克螂 2017-03-15
  • 打赏
  • 举报
回复
不明白 nginx、uwsgi跟python 取环境变量有什么影响? 只否你的flask服务根本没启动? 看进程,放代码

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧