196988f494729420fe06e0506ff65af67877ee5e
- index.html: 썸네일 이미지 onerror 핸들러 추가 - 이미지 파일 누락 시 placeholder 이미지로 자동 대체 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
WIXON Blog
Flask 기반 블로그 애플리케이션입니다.
프로젝트 구조
wixon_blog/
├── app.py # Flask 메인 애플리케이션
├── templates/ # Jinja2 템플릿
│ ├── base.html # 기본 레이아웃
│ ├── index.html # 메인 페이지
│ ├── login.html # 로그인 페이지
│ ├── post.html # 포스트 상세
│ ├── write.html # 포스트 작성
│ ├── edit_post.html # 포스트 수정
│ └── admin/ # 관리자 페이지
│ ├── base_admin.html # 관리자 베이스 템플릿
│ ├── dashboard.html # 대시보드
│ ├── posts.html # 포스트 관리
│ ├── post_detail.html # 포스트 수정
│ ├── members.html # 회원 목록
│ └── member_form.html # 회원 추가/수정
├── static/
│ ├── css/
│ │ ├── style.css # 메인 스타일
│ │ └── admin.css # 관리자 스타일
│ ├── images/ # 이미지 파일
│ ├── font/ # 웹 폰트
│ └── upload/img/ # 업로드 이미지
└── README.md
기술 스택
- Backend: Flask (Python)
- Database: MySQL
- Frontend: UIKit 3.6.16, jQuery, Summernote Editor
- 인증: bcrypt 암호화, Session 기반
주요 기능
사용자 기능
- 블로그 포스트 조회
- 로그인/로그아웃
- 포스트 작성 (로그인 필요)
- 포스트 수정/삭제 (작성자 또는 관리자)
관리자 기능 (/admin/)
- 대시보드: 통계 (총 포스트, 공개/비공개, 회원 수)
- 포스트 관리: 목록, 검색, 필터링, 수정, 삭제, 복구
- 회원 관리: 목록, 추가, 수정, 삭제, 비밀번호 재설정
URL 구조
| URL | 설명 |
|---|---|
/ |
메인 페이지 |
/login |
로그인 |
/logout |
로그아웃 |
/post/<id> |
포스트 상세 |
/write |
포스트 작성 |
/edit_post/<id> |
포스트 수정 |
/admin/ |
관리자 대시보드 |
/admin/posts |
포스트 관리 |
/admin/members |
회원 관리 |
실행 방법
# 의존성 설치
pip install flask pymysql bcrypt beautifulsoup4 markupsafe
# 앱 실행
python3 app.py
서버가 http://0.0.0.0:8899에서 실행됩니다.
데이터베이스 테이블
blog
| 컬럼 | 설명 |
|---|---|
| id | PK |
| user_id | 작성자 ID (FK) |
| title | 제목 |
| category | 카테고리 (IT, NEWS, ETC) |
| contents | 내용 (HTML) |
| thumbnail_img | 썸네일 URL |
| public_yn | 공개 여부 (Y/N) |
| use_yn | 사용 여부 (Y/N, 소프트 삭제) |
| add_date | 작성일 |
member
| 컬럼 | 설명 |
|---|---|
| mb_idx | PK |
| mb_id | 로그인 ID |
| mb_passwd | 비밀번호 (bcrypt) |
| mb_name | 이름 |
관리자 계정
- 관리자 권한:
admin,wixon,javamon아이디 보유자
라이선스
WIXON Associates Inc.
Description
Languages
HTML
59%
CSS
21.7%
Python
19.3%