[英]How to pass argparse argument to a sanic route?
我希望將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
但沒有成功
好的,您可以根據解析參數動態更改該路由的功能...像這樣(對不起,我在手機上)
#!/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)
可能會犯一些錯誤,但您應該掌握要點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.