如何在不使用命令的情况下运行Flask Web应用程序?

时间:2019-02-20 10:58:15

标签: python flask

我正在使用 python __init __。py 命令从命令行在本地运行Flask Web应用程序。我想不使用任何命令来运行/部署flask Web。像Spring Web App。 初始化 .py

from flask import Flask, url_for
from flask import jsonify

from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware
import db_config

app = Flask(__name__)
app.config['APPLICATION_ROOT'] = '/my-web-app'

def simple(env, resp):
   resp(b'200 OK', [(b'Content-Type', b'text/plain')])
   return [b'Hello my app User']

@app.route("/")
def hello():
   return "Hello world"

@app.route('/test', methods=['GET'])
def get_tasks():
   db = db_config.getconnection();
   cur = db.cursor()
   cur.execute("SELECT * FROM emp")
   items = cur.fetchall()
   print(items)
   db.commit()
   cur.close()
   db.close()
   return jsonify({'tasks': items})

app.wsgi_app = DispatcherMiddleware(simple, {'/my-web-app': app.wsgi_app})
if __name__ == "__main__":
   app.run()

是否可以创建flask Web应用程序的.WAR文件并将其部署在服务器上?并在发出请求时启动Web应用。

1 个答案:

答案 0 :(得分:4)

是否可以通过Flask应用创建Java .WAR文件?可能,但是我真的不推荐。 Python不是Java。

是否可以在服务器上部署Flask应用程序?哦,是的,有很多方法。 Flask文档中的Deployment Options页列出了几个选项,包括:

  • 托管选项:在Heroku,OpenShift,Webfaction,Google App Engine,AWS Elastic Beanstalk,Azure,PythonAnywhere上部署Flask
  • 自托管选项:使用独立的WSGI容器(Gunicorn,uWSGI,Gevent,Twisted),使用Apache的mod_wsgi,使用FastCGI或使用老式的香草CGI运行您自己的服务器。

在自托管选项中,我绝对会推荐nginx而不是Apache作为前端Web服务器,并且nginx内置了对uWSGI协议的支持,您可以使用{ {1}}命令。

但是,我绝对建议您研究一种托管选项,而不要从事运行自己的Web服务器的工作,尤其是在您刚入门时。 Google App Engine和AWS Elastic Beanstalk都是很好的平台,可以作为运行云Web应用程序的初学者入门。