0

有了Flask、webapp2、Pyramid等Python web应用框架,每个route-handling-function怎么能有自己的py文件呢?我不希望所有这些函数都堆积在一个文件结构中。我该怎么做才能在 Flask、webapp2 和 Pyramid 中完成这项工作?

谢谢你。

4

2 回答 2

2

在烧瓶和金字塔(不知道 webapp2,但可能相同)中,路由处理函数(我们称它们为视图)只不过是函数,它们注册到应用程序注册表。


在烧瓶中,您可以将视图放在任何地方,只要您注册它:

应用程序.py:

from flask import Flask
app = Flask(__name__)

视图.py:

from app import app
@app.route("/")
def hello():
    return "Hello World!"

主.py:

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

金字塔也是一样。我不会详细介绍。注册过程不同,但思路是一样的。但它在任何地方,只要你注册它。有两种注册视图的方法:

  • using add_view:第一个参数是函数的虚线路径。把它放在任何地方,把正确的路径放在这里。
  • 使用scan:第一个参数是一个经过扫描以查找视图的包。只要确保您的所有视图都在包及其子包中,一切都会正常工作。
于 2012-06-15T09:19:07.307 回答
1

如果 Python 需要特定位置的函数,那么您可以自己从其他文件中导入它们。

例如,如果 Web 框架从以下位置导入函数code.py

def a():
    pass

def b():
    pass

def c():
    pass

然后您可以code.py通过从其他地方导入函数来替换以下内容:

from mycode.somewhere import a, b
from mycode.some.other.place import c

就 web 框架而言,您仍然code.py包含 function a,但是您的代码当然可以以不同的方式组织。bc

于 2012-06-15T09:15:59.803 回答