0

我希望将 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但没有成功

4

1 回答 1

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)

可能有一些错误,但你应该明白它的要点

于 2019-07-28T12:28:13.343 回答