작성일 댓글 남기기

화성 파노라마사진

http://www.360cities.net/image/curiosity-mars#-1746.56,27.95,5.0

큐리오시티가 찍은  화성 파노라마사진을 볼 수 있는 링크입니다.

태양이 낮게 떠 있는 것을 보니 화성에서의 시간대는 아침이거나 늦은 오후일 것 같고,
대기가 얇아서 그런건지 구름은 하나도 보이지 않는다.

지표면은 크게 낯설지 않고 지구에도 어딘가 있을 것 같은 형태로 생겼다.

가보고 싶다.

작성일 댓글 남기기

bottle 에서 로그인여부를 확인하는 방식


처음엔 몰라서 각 함수마다 맨처음에 로그인 체크하고
로그인이 안되어 있으면 다른페이지로 리프레쉬되는 메타태크 문자열을 리턴했다.
로그인 되어있으면 다음코드를 진행하고…

각 함수마다 이렇게 해놓으니 지저분하고 유지보수도 짜증날 것 같아서 간단한 방법이 없을까 찾아봤다.

로그인여부가 필요한 함수에 로그인을 체크하고 처리하는 데코레이터를 붙여서 처리했다.

예,

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



로그인이 되어 있으면 인자로 넘어온 함수를 그대로 리턴하고
그렇지 않으면 로그인페이지로 넘긴다.