Python 如何模块化URL处理功能?
使用诸如Flask、webapp2和Pyramid等Python web应用程序框架,每个路由处理函数如何拥有自己的py文件?我不希望所有这些函数都堆积在一个文件结构中。我该怎么做才能在Flask、webapp2和Pyramid中工作Python 如何模块化URL处理功能?,python,python-2.7,flask,pyramid,webapp2,Python,Python 2.7,Flask,Pyramid,Webapp2,使用诸如Flask、webapp2和Pyramid等Python web应用程序框架,每个路由处理函数如何拥有自己的py文件?我不希望所有这些函数都堆积在一个文件结构中。我该怎么做才能在Flask、webapp2和Pyramid中工作 谢谢。如果Python希望函数位于特定位置,那么您可以自己从其他文件导入它们 例如,如果web框架从code.py导入函数: def a(): pass def b(): pass def c(): pass 然后,通过从其他地方导入
谢谢。如果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
仍然包含函数a
、b
和c
,但您的代码肯定可以以不同的方式组织。如果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
仍然包含函数a
、b
和c
,但您的代码肯定可以以不同的方式组织。在flask和pyramid中(不知道webapp2,但可能相同),路由处理函数(让我们称它们为视图)只不过是函数,注册到应用程序注册表
在flask中,您可以将视图放在任何位置,只要您注册它: app.py:
from flask import Flask
app = Flask(__name__)
view.py:
from app import app
@app.route("/")
def hello():
return "Hello World!"
main.py:
from app import app
if __name__ == "__main__":
app.run()
金字塔也是一样。我不想谈细节。注册过程不同,但想法是一样的。但它在任何地方都可以,只要你注册就行。注册视图有两种方法:
- 使用
:第一个参数是函数的虚线路径。把它放在任何地方,把正确的路径放在这里add_view
- 使用
:第一个参数是扫描以查找视图的包。只要确保所有视图都在包及其子包中,一切都会正常工作scan
在flask中,您可以将视图放在任何位置,只要您注册它: app.py:
from flask import Flask
app = Flask(__name__)
view.py:
from app import app
@app.route("/")
def hello():
return "Hello World!"
main.py:
from app import app
if __name__ == "__main__":
app.run()
金字塔也是一样。我不想谈细节。注册过程不同,但想法是一样的。但它在任何地方都可以,只要你注册就行。注册视图有两种方法:
- 使用
:第一个参数是函数的虚线路径。把它放在任何地方,把正确的路径放在这里add_view
- 使用
:第一个参数是扫描以查找视图的包。只要确保所有视图都在包及其子包中,一切都会正常工作scan