同时运行 Django 和 Flask

Tos*_*rai 2 python nginx

我想同时运行 Django 和 Flask。Django 应用程序将在“hello.com”运行,Flask 应用程序将在“hello.com/flaskapp”运行。我怎样才能做到这一点?

chu*_*ash 5

如果您不需要 Flask 中的 django-y 内容或 django 中的 Flask-y 内容(即它们是完全独立的应用程序),那么只需设置您的 Web 服务器以将请求代理到运行 Flask 的进程/flaskapp即可以及/运行 Django 的进程下的所有其他内容。

我从来没有在生产中这样做过,头脑中,也从来没有专门使用 Django 和 Flask 并排,但经常使用 NodeJS 开发服务器和 Django(或 Flask)后端 API 来完成此操作,该 API 将所有请求代理到任意/api/端口在 localhost 上我正在运行 Django 开发服务器。

完成此操作的示例配置nginx

upstream django {
    # your usual django config using e.g. uwsgi or gunicorn
}

upstream flask {
    # your usual flask config
}

server {
    location / {
        proxy_pass http://django;
    }

    location /flaskapp {
        proxy_pass http://flask;
    }
}
Run Code Online (Sandbox Code Playgroud)

@davidism 在关于让 Flask 知道它不“拥有”站点根目录的评论中提出了一个很好的观点。设置script_root应该/flaskapp可以解决问题(请参阅相关 Flask 文档)。