7.20.2026, 03:45
Tkinter + requests 블로그 관리 클라이언트
블로그를 관리하기 위한 간단한 Python 프로그램 만듦.
https://github.com/rzglitch/blog-manager
구성
- fetch.py: API 통신 전담 (Fetch 클래스, 정적 메서드)
- main.py: 화면 구성 및 이벤트 처리
fetch.py
- login, get_post, create_post, update_post, delete_post 5개 메서드
- 응답 ok 필드 체크 -> 실패 시 False 반환 (일관된 패턴)
- 인증 필요 요청은 `Authorization: Bearer {token}` 헤더 사용
main.py
- 화면 5개: LoginForm - SelectActionForm - NewPostForm / UpdatePostForm / DeletePostForm
- 화면 전환: 현재 프레임 destroy() 후 새 프레임 pack() (별도 라우터 없음)
- access_token, logged_user는 모듈 전역 변수로 관리
tk.Text는 StringVar와 직접 바인딩이 불가해서 수동 동기화 필요. UpdatePostForm의 양방향 바인딩으로 해결
```python
def text_to_var(event=None):
self.br_content.set(self.content.get("1.0", "end-1c"))
def var_to_text(*args):
current = self.content.get("1.0", "end-1c")
if current != self.br_content.get():
self.content.delete("1.0", "end")
self.content.insert("1.0", self.br_content.get())
self.content.bind("<KeyRelease>", text_to_var)
self.br_content.trace_add("write", var_to_text)
```
값 동일 시 갱신 스킵하여 무한 루프 방지
개선 아이디어
- 전역 변수 -> 세션/상태 클래스로 캡슐화
- response.json() 호출 시 예외 처리 추가 (비 JSON 응답 대비)
- 엔드포인트 URL 하드코딩을 .env로 빼내거나, 로그인 화면에서 URL 입력

