我的申请很简单
# app.py
import falcon
class ThingsResource:
def on_get(self, req, resq) :
# something
class SomeResource:
def on_get(self, req, resq) :
# something
def create_things(self):
app = falcon.API(middleware=[(Middleware1())])
things = ThingsResource()
app.add_route('/things', things)
def create_some(self):
app = falcon.API(middleware=[(Middleware2(exempt_routes=['/health']))])
some = SomeResource()
app.add_route('/some', some)
问题在于,因为我使用的路由的中间件不同,所以一条路由是Middleware1,另一条是Middleware2
我需要运行app.py应用程序,但这是
gunicorn -b 0.0.0.0:8000 app --reload
[无法在'app'中找到应用程序对象'application']
不起作用
我不知道如何运行此应用程序
我应该跑步
gunicorn -b 0.0.0.0:8000 app:app --reload
但是“ app”位于方法内部
有人有主意吗?
答案 0 :(得分:1)
您可以做的是,从这些函数返回app
实例,并将其分配给文件中的变量(在任何函数之外),如下所示:
def create_things():
app = falcon.API(middleware=[(Middleware1())])
things = ThingsResource()
app.add_route('/things', things)
return app
def create_some():
app = falcon.API(middleware=[(Middleware2(exempt_routes=['/health']))])
some = SomeResource()
app.add_route('/some', some)
return app
app = create_some()
并使用
运行它gunicorn -b 0.0.0.0:8000 <file_name>:app --reload