簡體   English   中英

如何將argparse參數傳遞給sanic路由?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM