http://www.360cities.net/image/curiosity-mars#-1746.56,27.95,5.0
큐리오시티가 찍은 화성 파노라마사진을 볼 수 있는 링크입니다.
태양이 낮게 떠 있는 것을 보니 화성에서의 시간대는 아침이거나 늦은 오후일 것 같고,
대기가 얇아서 그런건지 구름은 하나도 보이지 않는다.
지표면은 크게 낯설지 않고 지구에도 어딘가 있을 것 같은 형태로 생겼다.
가보고 싶다.
http://www.360cities.net/image/curiosity-mars#-1746.56,27.95,5.0
큐리오시티가 찍은 화성 파노라마사진을 볼 수 있는 링크입니다.
태양이 낮게 떠 있는 것을 보니 화성에서의 시간대는 아침이거나 늦은 오후일 것 같고,
대기가 얇아서 그런건지 구름은 하나도 보이지 않는다.
지표면은 크게 낯설지 않고 지구에도 어딘가 있을 것 같은 형태로 생겼다.
가보고 싶다.
각 함수마다 이렇게 해놓으니 지저분하고 유지보수도 짜증날 것 같아서 간단한 방법이 없을까 찾아봤다.
로그인여부가 필요한 함수에 로그인을 체크하고 처리하는 데코레이터를 붙여서 처리했다.
예,
1
2
3
4
5
|
@route ( '/rsyslog/list' ) @route ( '/rsyslog' ) @authenticated def get_list(): return "Get Some List" |
로그인 했을 때만 사용할 수 있는 페이지를 뿌려주는 함수에 authenticated 라는 데코레이터를 붙인다.
authenticated를 이렇게 만든다.
1
2
3
4
5
6
7
8
|
def authenticated(func): def wrapped( * args, * * kwargs): if check_login(): return func( * args, * * kwargs) else : redirect( 'login' ) return wrapped |
로그인이 되어 있으면 인자로 넘어온 함수를 그대로 리턴하고
그렇지 않으면 로그인페이지로 넘긴다.