通常,我通过将代码封装到类中来重用Python。
但是用Bottle来说,我基本上是在全局级别上用路由来装饰函数。
例如。
@get("/foo/<id>")
def foo(id) :
return f(id)
我现在有两个项目,它们可能共享80%这样的路由处理程序。
如何最好地使它们之间的共性可重用?
由于显式的自我,我认为我无法修饰类的方法。那么除了复制和粘贴之外,还有另一种方法可以在两个不同的项目之间共享代码吗?
答案 0 :(得分:1)
如果您希望重用实现(示例中的函数foo
),那么类似的方法可能对您有用:
from bottle import Bottle
from path.to.my.common.lib import foo
app = Bottle()
app.get("/foo/<id>")(foo)
app.run(host="0.0.0.0", port=8000)
我在那里所做的只是显式地使用装饰器,而不是使用其漂亮的@
语法。
答案 1 :(得分:0)
您还可以合并路线。
from myclient import clientRoute
from myapi import apiRoute
from mysandbox import sandboxRoute
app = bottle.app()
for nftyRoute in (myclient , myapi , mysandbox):
app.merge(nftyRoute)
,并且在每个路由文件中,您都将简单地:(例如myclient.py)
from bottle import Bottle, get, post, request, response, template, redirect, abort
clientRoute = Bottle()