You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PythonAnywhere的wsgi.py中创建两个Flask应用?

在PythonAnywhere上配置多个Python应用的解决方法

你当前的WSGI脚本只把app1赋值给了服务器默认加载的application变量,所以只有app1能正常响应,访问app2时自然返回404。下面提供两种可行的配置方案:

方案1:同一域名下按路径分发应用

用WSGI中间件实现URL路由分发,让不同路径对应不同应用,修改你的WSGI脚本如下:

import sys
from werkzeug.middleware.dispatcher import DispatcherMiddleware

# 配置第一个应用路径
project_one = '/Projects/One'
if project_one not in sys.path:
    sys.path = [project_one] + sys.path
from one import app1

# 配置第二个应用路径
project_two = '/Projects/Two'
if project_two not in sys.path:
    sys.path = [project_two] + sys.path
from two import app2

# 设置路由规则:访问 /app2 开头的路径时,转发给app2
application = DispatcherMiddleware(app1, {
    '/app2': app2
})
  • 若用Flask,需要给app2添加APPLICATION_ROOT = '/app2'配置,避免内部路由冲突
  • 静态文件需对应配置路径,比如app2的静态资源要映射到/app2/static/

方案2:为每个应用单独创建Web实例

这是更清晰的方式,适合应用独立运行的场景:

  • 登录PythonAnywhere后台,进入「Web」页面,点击「Add a new web app」
  • 按照向导选择Python版本,完成新应用创建
  • 进入新应用的WSGI配置页面,替换默认代码为:
import sys

project_two = '/Projects/Two'
if project_two not in sys.path:
    sys.path = [project_two] + sys.path

from two import app2 as application
  • 配置新应用的访问路径(比如子域名youraccount.pythonanywhere.com/app2),重启两个应用即可

额外注意

  • 两个应用的依赖环境要区分开,建议为每个应用单独配置虚拟环境
  • 修改配置后务必重启对应应用,确保生效

内容的提问来源于stack exchange,提问作者Austin Marquis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:50:02