2017-04-25 4 views
1

(피라미드) (로컬 호스트 : 6543/사용자)가 두 번째 매개 변수 (예를 필요로하기 때문에python에서 match_param을 무효화하는 방법은 무엇입니까? 나는로드 할 수 있도록하려면

enter image description here

가로드되지 않는 로컬 호스트 :. 6543/사용자/엑스).

enter image description here

나는 내 경로에 설정 때문입니다, 문제를 알고 있어요. 여기

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

여기
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 

당신이 내 코드에 대한 몇 가지 개선 사항을 제공 할 수있는 경우, 응답 할 것이다 사람들을 주셔서 감사합니다 내 views.py이 내 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() 

입니다 제발 말해줘.

답변

1

여기 내 모든 행동에 대해 다른 경로를 사용해야한다고 생각합니다.

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() 

및 수정하여 사용자를 행동으로 변경하십시오.

+1

여기서 2 개의 경로를 정의해야합니다. 하나는 패턴이 있고 하나는없는 것. ** 엄격하게 ** 필요한 것은 아니지만 최선의 방법입니다. 원한다면 두 번째 이름을'/ users/{action}'패턴이나 뭔가 사용하여'user_action'라고 명명 할 수 있습니다. –