如何在 python 上否定 match_param? (金字塔)

How to negate match_param on python? (pyramid)

我希望能够加载 (localhost:6543/users),

它不会加载,因为它需要第二个参数(例如 localhost:6543/users/x)。

我知道这个问题,因为我在我的路线上设置了它。

config.add_route('users', '/users/{action}')

这是我的 init.py

def includeme(config):
    config.add_static_view('user_static', 'user:static', cache_max_age=3600)
    config.add_static_view('static', 'user:static', cache_max_age=3600)
    config.add_route('users', '/users/{action}')
    config.scan()

这是我的 views.py

class UserView:

def __init__(self, request):
    self.request = request

@view_config(route_name='users', renderer='templates/users.jinja2')
def users(self):
    return {'title': 'Users'}


@view_config(route_name='users', renderer='json', match_param='action=list')
def list(self):
    #return list   

@view_config(route_name='users', renderer='json', match_param='action=add')
def add(self):
    #add new user

@view_config(route_name='users', renderer='json', match_param='action=getUser')
def getUser(self):
   #retrieve data for update

@view_config(route_name='users', renderer='json', match_param='action=updateUser')
def updateUser(self):
    #update record

谢谢那些会回答的人,如果你能对我的代码进行一些改进,请告诉我。

我想我应该使用另一条路线来完成我在这里的所有操作。

def includeme(config):
    config.add_static_view('user_static', 'user:static', cache_max_age=3600)
    config.add_static_view('static', 'user:static', cache_max_age=3600)
    config.add_route('users', '/users')
    config.add_route('action', '/action/{action}')
    config.scan()

并修改视图,更改用户操作。

class UserView:

def __init__(self, request):
    self.request = request

@view_config(route_name='users', renderer='templates/users.jinja2')
def users(self):
    return {'title': 'Users'}


@view_config(route_name='action', renderer='json', match_param='action=list')
def list(self):
    #return list   

@view_config(route_name='action', renderer='json', match_param='action=add')
def add(self):
    #add new user

@view_config(route_name='action', renderer='json', match_param='action=getUser')
def getUser(self):
    #retrieve data for update

@view_config(route_name='action', renderer='json', match_param='action=updateUser')
def updateUser(self):
    #update record