我确信这是一个非常简单的问题,但我似乎无法弄明白。我正在进入python,并以一个基本的“hello world”路由器为例。我想导出大部分代码,将应用程序扩展为多个文件。当所有代码都在一个文件中时,它可以正常工作,但当它被移动到2个单独的文件中时,就会发生轰炸。非常感谢任何帮助。
第一个文件
import re # first file
from Primer.Core.router import Router // second file, excluded when all code is in 1 file
# second file code here when combined
def application(environ, start_response):
router = Router(environ, start_response)
return router.run()
第二个文件
from cgi import escape
class Router:
def __init__(self, environ, start_response):
self.environ = environ
self.start_response = start_response
def run(self):
path = self.environ.get('PATH_INFO', '').lstrip('/')
if (path == 'hello')
return 'hello'
else
return 'other'
答案 0 :(得分:1)
如果这两个文件位于同一目录中,则应从import
中删除前缀。
from router import Router
此外,您需要在包含要导入的文件的目录中创建一个空文件__init__.py
。
答案 1 :(得分:1)
现在,我在代码中看到了几个错误:
//
)在其后写入。您应该使用#
代替。您应该检查文件的结构是否正确:
├── Primer
│ ├── Core
│ │ ├── __init__.py
│ │ └── router.py
│ ├── __init__.py
└── index.py
if
课程中的else
和Router
都缺少冒号:
def run(self):
path = self.environ.get('PATH_INFO', '').lstrip('/')
if (path == 'hello'):
return 'hello'
else:
return 'other'
此外,您的Router
类中方法的缩进未在您的示例中正确设置,但我认为您的文件中没有...
我会检查错误是不是由于那个错误。