Python中如何使用Xweb-Router路由插件

xweb-router

Router middleware for xweb

基本用法

from xweb import App

from xweb_router import Router

app = App() router = Router() app.use(router)

@router.get(’/’) async def home(ctx): ctx.body = “Home”

if name == ‘main’: app.listen(8000)

路由插件

from xweb import App

from xweb_router import Router

app = App() router = Router() app.use(router)

@router.use(’/’) async def middleware(ctx, fn): “”“Router Middleware”"" print(‘middleware’) await fn()

@router.get(’/’) async def home(ctx): ctx.body = “Home”

if name == ‘main’: app.listen(8000)

动态参数

from xweb import App

from xweb_router import Router

app = App() router = Router()

@router.get(’/{name}’) async def hello(ctx): “”“URL parameters”"" ctx.body = f"Hello {ctx.params.name}"

if name == ‘main’: app.listen(8000)

嵌套路由


from xweb import App

from xweb_router import Router

app = App() router = Router() nested = Router()

app.use(router)

router.use(’/post’)(nested)

@nested.get(’/index’) async def index(ctx): ctx.body = “Nested Index”

if name == ‘main’: app.listen(8000)

Github: xweb-router


Python中如何使用Xweb-Router路由插件

1 回复

Xweb-Router是个轻量级的路由库,用起来挺简单的。先安装:pip install xweb-router

基本用法就是定义路由函数,然后启动服务:

from xweb_router import Router, run

app = Router()

@app.route('/')
def home():
    return 'Hello, Xweb-Router!'

@app.route('/user/<name>')
def user(name):
    return f'Hello, {name}!'

if __name__ == '__main__':
    run(app, port=8000)

这里<name>是动态参数,访问/user/john就会显示"Hello, john!"。

支持GET、POST这些方法:

@app.route('/api/data', methods=['POST'])
def post_data():
    # 处理POST请求
    return 'Data received'

路由分组可以用Router嵌套:

api = Router()
@api.route('/users')
def get_users():
    return 'User list'

app.add_router('/api', api)

这样/api/users就映射到get_users函数了。

中间件也支持,比如加个简单的日志:

@app.middleware
async def log_middleware(request, next_handler):
    print(f'Request: {request.path}')
    return await next_handler(request)

总结:Xweb-Router用起来挺直观的,适合快速搭建Web服务。

回到顶部