파이썬 플라스크로 웹페이지를 제작했다. 간단한 화면 정도는 해 봤지만, 좀 더 깊게 들어가보기로 했다. 대략적으로 레이아웃을 잡고 만들기 시작했다. 금방 끝날 줄 알았지만 여러가지 시행착오와 디버깅으로 시간이 필요했다. 웹페지를 만들고 나서, pythonanywhere를 통해 배포까지 마무리했다. 오늘은 웹페이지를 제작하며 겪은 시행착오를 공유해 보고자 한다.
오늘은 파이썬 플라스크 웹페이지 만들기 후기 - 전역변수를 사용하지 말자에 대해서 알아보겠다. 필자가 만든 웹페이지가 궁금하다면, 아래 포스팅을 참고하기 바란다.
Recommendation 포스팅
전역변수를 사용하면 안 되는 이유는?
코딩을 하다보면 여러가지 이유로 전역변수가 편리할 때가 있다. 로컬에서 코딩을 할 때는 전역변수를 사용해도, 잘 작동하는 것을 확인했다. 전역변수를 사용할 때도 사용자별로 분기가 되서 처리되는지 궁금했는데, 확인결과 사용자별로 분기가 되지 않는다.
전역변수를 사용하면 한 사용자가 수정한 값이 다른 사용자에게도 반영된다. 웹페이지가 완전 꼬이게 된다.
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도 알아야 한다. 모든 일이 그렇지만 설계가 중요하다는 것을 다시 한 번 느끼게 된다.
'파이썬 > 웹사이트 개발' 카테고리의 다른 글
웹사이트 만들기, HTML,CSS,JAVASCRIPT,JQUERY 알아보기 (0) | 2022.08.12 |
---|---|
파이썬 flask development 모드 실행하는 2가지 방법은?! (0) | 2022.05.22 |
파이썬 플라스크 사용자 입력 받는 2가지 방법 - GET과 POST 알아보기! (0) | 2022.04.13 |
파이썬 플라스크(flask) 내부 링크 만들기 - urlfor함수 사용하기! (0) | 2022.04.12 |
파이썬 플라스크 이미지 삽입, img 태그 사용하는 법은?! (0) | 2022.04.11 |
파이썬애니웨어(pythonanywhere) 웹페이지 폴더 경로 설정하는 방법은?! (0) | 2022.04.10 |
파이썬 플라스크 웹페이지 개발 쉽게 하는 방법은?! (0) | 2022.04.08 |
파이썬 플라스크(flask) CSS 적용하기! (0) | 2022.04.07 |