파이썬 플라스크로 웹페이지를 제작했다. 간단한 화면 정도는 해 봤지만, 좀 더 깊게 들어가보기로 했다. 대략적으로 레이아웃을 잡고 만들기 시작했다. 금방 끝날 줄 알았지만 여러가지 시행착오와 디버깅으로 시간이 필요했다. 웹페지를 만들고 나서, pythonanywhere를 통해 배포까지 마무리했다. 오늘은 웹페이지를 제작하며 겪은 시행착오를 공유해 보고자 한다.


오늘은 파이썬 플라스크 웹페이지 만들기 후기 - 전역변수를 사용하지 말자에 대해서 알아보겠다. 필자가 만든 웹페이지가 궁금하다면, 아래 포스팅을 참고하기 바란다.

 

 

Recommendation 포스팅

 

 

global

 

 

전역변수를 사용하면 안 되는 이유는?

코딩을 하다보면 여러가지 이유로 전역변수가 편리할 때가 있다. 로컬에서 코딩을 할 때는 전역변수를 사용해도, 잘 작동하는 것을 확인했다. 전역변수를 사용할 때도 사용자별로 분기가 되서 처리되는지 궁금했는데, 확인결과 사용자별로 분기가 되지 않는다.

 

전역변수를 사용하면 한 사용자가 수정한 값이 다른 사용자에게도 반영된다. 웹페이지가 완전 꼬이게 된다.

 

 

g라는 다른 대안은 있지만.

이런 상황을 나만 겪은 것은 아닐 것이다. 플라스크에는 g라는 모듈이 있어 사용자별로 전역변수를 사용할 수 있다. 이 객체를 이용해봤지만 무슨 일인지 잘 작동하지 않는다. iframe을 사용해서 그런지는 모르겠지만, 정확한 이유를 알기 어렵다. 그래서 g라는 모듈에 대해서는 나중에 좀 더 알아보기로 하고 다른 방법을 찾기로 했다. g라는  모듈에 대한 자세한 내용이 궁금하다면 아래 링크를 참조해보자.
( 참조: 플라스크 g 알아보기 )


입력

 

 

사용자 웹페이지에 값을 넣기로 했다.

이 방법, 저 방벙 해보다가 필요한 값을 사용자의 웹페이지에 넣기로 했다. input 태그의 hidden타입을 이용하면 사용자의 눈에는 보이지 않지만 값을 넣을 수 있다. 플라스크 코드에 아래와 같이 넣었다.

 

si_infor = '<input type="hidden" name="si_front" value="' + si + '">'

 


si라는 변수의 값을 input 태그로 넣었다. render_template함수에 해당 값을 변수로 해서, 아래와 같이 form태그 사이에 넣었다.

 

<form method="get">
      {{ si_infor|safe }}
</form>

 

 

이렇게 하고 코드를 실행시키니 잘 작동한다. 다른 더 좋은 방법이 있는지는 모르겠다. 더 좋은 방법이 있다면 공유해 주기를 바란다.


오늘은 이렇게 플라스크 웹페이지 제작후기 - 전역변수를 사용하지 말자에 대해서 알아보았다. 단일 프로그램을 제작하는 것과 웹페이지를 제작하는 것은 설계(?) 면에서 좀 다른 듯 하다. HTML, CSS, JAVASCRIPT도 알아야 한다. 모든 일이 그렇지만 설계가 중요하다는 것을 다시 한 번 느끼게 된다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기