我希望将argparse参数传递给带有装饰器的函数。这里的策略是什么?没有全局变量如何实现?
#!/usr/bin/env python3
from sanic import Sanic, views, response
import os
import argparse
app = Sanic(__name__)
@app.route('/<var:var>')
async def get(self, request, var):
print(path)
return response.text(var)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--path",
help="Set the server root path",
action="store")
args = parser.parse_args()
app.run(host='0.0.0.0', port=8000)
我也尝试使用视图HTTPMethodView
,但没有成功
答案 0 :(得分:0)
好的,因此您可以根据解析参数动态更改该路由的功能...这样(抱歉,我在手机上)
#!/usr/bin/env python3
from sanic import Sanic, views, response
import os
import argparse
app = Sanic(__name__)
@app.route('/<var:var>')
async def get(self, request, var):
print(path)
return response.text(var)
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--path", help="Set the server root path", action="store")
args = parser.parse_args()
def get(var):
# use args.p in your route function!!
app.view_functions["/<var:var>"] = get
app.run(host='0.0.0.0', port=8000)
可能会犯一些错误,但是您应该明白它的要旨