관리자 페이지 추가 및 버그 수정

- 관리자 대시보드 추가 (/admin/)
  - 통계: 총 포스트, 공개/비공개, 삭제된 포스트, 회원 수
- 포스트 관리 추가 (/admin/posts)
  - 목록, 검색, 필터링, 페이지네이션
  - 포스트 수정, 삭제, 복구 기능
- 회원 관리 추가 (/admin/members)
  - 회원 목록, 추가, 수정, 삭제
  - 비밀번호 재설정
- 버그 수정
  - g.is_login, g.user_info 기본값 설정
  - index 페이지 빈 포스트 처리
- 관리자 권한: admin, wixon, javamon
- README.md 프로젝트 문서 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
javamon117
2026-01-05 15:30:49 +09:00
parent 73a13852bf
commit d49a33cc6c
10 changed files with 1407 additions and 4 deletions

111
README.md
View File

@@ -1,2 +1,109 @@
"# wixon_blog" "# wixon_blog"
"# wixon_blog"
# 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` | 회원 관리 |
## 실행 방법
```bash
# 의존성 설치
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.