PythonAnywhere如何配置pythonanywhere_com_wsgi.py运行纯Python应用
WSGI文件正确配置方法
把你站点对应的???_pythonanywhere_com_wsgi.py文件原有内容全部删除,替换为如下代码,注意将代码中所有的???替换为你PythonAnywhere的实际用户名:
import sys # 加入你的项目路径 project_path = '/home/???/site' if project_path not in sys.path: sys.path.insert(0, project_path) def application(environ, start_response): path = environ.get('PATH_INFO', '').lstrip('/') # 匹配请求路径对应的脚本 if path == '' or path == 'menu.py': # 导入menu模块执行逻辑,函数名替换为你menu.py里实际输出内容的函数 from menu import get_menu_content status = '200 OK' content = get_menu_content() # 如果不需要对外暴露db相关路径,可以删除下面这个判断分支 elif path in ['db1.py', 'db2.py', 'db3.py']: status = '200 OK' module_name = path.rstrip('.py') exec(f'from {module_name} import get_content') content = get_content() else: status = '404 NOT FOUND' content = 'Page not found.' response_headers = [('Content-Type', 'text/html; charset=utf-8'), ('Content-Length', str(len(content.encode('utf8'))))] start_response(status, response_headers) return [content.encode('utf8')]
生效操作
修改完配置文件后,进入PythonAnywhere的Web管理面板,点击对应站点的Reload按钮,配置即可生效。
补充说明
- 如果你原来的py文件是直接print输出内容的,需要改成返回字符串的函数形式,适配WSGI的返回规则
- 如果你只想对外暴露menu.py的功能,删除配置中db相关的判断分支即可
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

