在Openshift中部署Flask

时间:2016-08-20 07:58:56

标签: python flask openshift pymongo wsgi

以下代码在我的系统的localhost中没有任何问题...但是没有在OpenShift上完成工作.. 我的 wsgi.py 有问题。我是否必须使用环境变量传递我的用户名和密码或者我需要更改 localhost

以下是目录/ repository ...

的树
myflaskaws
├── requirements.txt
├── setup.py
├── static
│   ├── assets
│   │   ├── style.css
│   └── images
│       ├── no.png
│       └── yes.png
├── templates
│   ├── index.html
│   ├── login.html
│   ├── searchlist.html
│   ├── update.html
├── test.py
├── test.pyc
└── wsgi.py`

wsgi.py

#!/usr/bin/python
import os
virtenv = os.environ['OPENSHIFT_PYTHON_DIR'] + '/virtenv/'
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
    execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
    pass
from test import app as application
if __name__ == '__main__':
    from wsgiref.simple_server import make_server
    httpd = make_server('localhost', 8051, application)
    print("Serving at http://localhost:8051/ \n PRESS CTRL+C to Terminate. \n")
    httpd.serve_forever()
    print("Terminated!!")

test.py

from flask import Flask
app = Flask(__name__)

PS:我没有在 test.py中使用如果名称 =='主要':“强>

1 个答案:

答案 0 :(得分:0)

是的,您需要使用Openshift的环境变量来设置IP和端口。

尝试添加以下代码以设置正确的IP和端口,具体取决于您是在OS还是localhost上。

Import os

if 'OPENSHIFT_APP_NAME' in os.environ:              #are we on OPENSHIFT?
    ip = os.environ['OPENSHIFT_PYTHON_IP']
    port = int(os.environ['OPENSHIFT_PYTHON_PORT'])
else:
    ip = '0.0.0.0'                            #localhost
    port = 8051

httpd = make_server(ip, port, application)