繁体   English   中英

在 Windows 中将生产服务器添加到 Python Flask

[英]Adding a production server to Python Flask in Windows

我在 Flask 中设置了一个应用程序,并在 Windows 环境中的本地主机上运行。 我读过的所有教程都说不要在生产中使用默认的 Flask 服务器。

生产服务器 Gunicorn 和 uWSGI 都只在 Unix 中工作。 有没有办法通过 Windows 运行其中任何一个?

或者我是否需要将项目切换到 UNIX 开发环境?

有许多 WSGI 服务器可用于为 Flask 应用程序提供服务。 如果您确实需要将其部署到 Windows,那么我确实找到了NWSGI ,这可能值得一看。

我认为可以公平地说,WSGI 服务器在 Windows 上很少见,因为这个列表只提到了 NWSGI。 除非您有充分的理由部署到 Windows,否则我认为您最好选择 *nix 环境。

即使回答了这个问题,我想补充一点,您可以在 IIS 上运行 wsgi 应用程序,这是一个生产级 Web 服务器。

最简单的例子是flask如何在azure(IIS)上运行,但我看到一个链接解释得更好https://heejune.me/2015/04/22/running-python-flask-on-a-local-iis-非天蓝色与 wfastcgi-py/

Waitress是适用于 Windows 和 Nix 平台的纯 Python 解决方案,设置起来并不比开发服务器复杂。

我已经在Windows上针对Flask网站成功使用了简单的Twisted Web服务器。 其他人是否也在Windows上成功使用Twisted来验证该配置?

new_app.py

if __name__ == "__main__":
    reactor_args = {}

    def run_twisted_wsgi():
        from twisted.internet import reactor
        from twisted.web.server import Site
        from twisted.web.wsgi import WSGIResource

        resource = WSGIResource(reactor, reactor.getThreadPool(), app)
        site = Site(resource)
        reactor.listenTCP(5000, site)
        reactor.run(**reactor_args)

    if app.debug:
        # Disable twisted signal handlers in development only.
        reactor_args['installSignalHandlers'] = 0
        # Turn on auto reload.
        import werkzeug.serving
        run_twisted_wsgi = werkzeug.serving.run_with_reloader(run_twisted_wsgi)

    run_twisted_wsgi()


old_app.py

if __name__ == "__main__":
    app.run()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM