有了Flask、webapp2、Pyramid等Python web应用框架,每个route-handling-function怎么能有自己的py文件呢?我不希望所有这些函数都堆积在一个文件结构中。我该怎么做才能在 Flask、webapp2 和 Pyramid 中完成这项工作?
谢谢你。
有了Flask、webapp2、Pyramid等Python web应用框架,每个route-handling-function怎么能有自己的py文件呢?我不希望所有这些函数都堆积在一个文件结构中。我该怎么做才能在 Flask、webapp2 和 Pyramid 中完成这项工作?
谢谢你。
在烧瓶和金字塔(不知道 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()
金字塔也是一样。我不会详细介绍。注册过程不同,但思路是一样的。但它在任何地方,只要你注册它。有两种注册视图的方法:
add_view
:第一个参数是函数的虚线路径。把它放在任何地方,把正确的路径放在这里。scan
:第一个参数是一个经过扫描以查找视图的包。只要确保您的所有视图都在包及其子包中,一切都会正常工作。如果 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
,但是您的代码当然可以以不同的方式组织。b
c