zjblog — ZenJong によるシンプルな Flask ブログシステム

Web

概要

zjblog は「zenjong」版として公開された、Flask ベースのブログ(博客)システムです。設計方針はシンプルで実用的なこと。SQLite(手軽なローカル運用)と MySQL(本番対応)の両方に対応し、記事の一覧・詳細表示、作成・編集・削除、閲覧数の集計、ページネーションなど基本的な CMS 機能を備えています。管理画面からはサイト名、ロゴ、著作表示、サブタイトルの設定やロゴ画像のアップロードが可能で、レスポンシブな白基調のテーマを採用しているため、モバイルでも見やすいデザインになっています。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 10
  • ファイル数: 15
  • メインの言語: JavaScript

主な特徴

  • Flask ベースの軽量ブログシステムで導入が容易
  • SQLite / MySQL の選択サポート(起動スクリプトで選択可能)
  • 記事管理(作成・編集・削除)、閲覧数カウント、ページネーション
  • 管理画面でのサイト基本設定(サイト名、ロゴ、著作、サブタイトル)

技術的なポイント

zjblog は Python のマイクロフレームワーク Flask を核として構築されており、テンプレートエンジンとして Jinja2 を使ったシンプルな MVC 構成が想定されます。データ層は SQLite と MySQL に対応しており、起動スクリプト(run.py 相当)で利用する DB を選択できるようになっている点が特徴です。設定ファイル(config.py、database_config.py)が分離されているため、接続情報や環境差分の管理がしやすく、開発→本番の切替も容易です。

フロントエンドは白とグレーを基調としたレスポンシブデザインで、モバイルファーストを意識したレイアウトが採用されています。ロゴアップロード等のファイルアップロード処理、記事の CRUD、閲覧数インクリメント処理、ページネーションロジックなど基本機能が備わっており、テンプレートとルーティングが直感的に組まれているため拡張やテーマ変更が行いやすい構造です。

注意点として、リポジトリのメタ情報ではメイン言語が JavaScript となっていますが、README・ファイル群を見る限り実装の中心は Flask(Python)です。セキュリティ面では認証・権限周りの記述が README 抜粋では見当たらないため、公開運用する場合は管理画面の認証、CSRF 対策、入力バリデーション、ファイルアップロードの制限、SQL インジェクション対策(ORM/プリペアドステートメントの利用)などを追加することを推奨します。運用面ではデータマイグレーション(Alembic 等)、ユニットテスト、Docker 化、自動デプロイ(CI/CD)の導入が将来的な改善ポイントです。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • app.py: file
  • config.py: file
  • database_config.py: file
  • requirements.txt: file
  • run.py: file
  • templates/: directory(想定されるテンプレート群)
  • static/: directory(CSS / JS / 画像等)
  • models.py: file(データモデル)
  • views.py / routes.py: file(ルーティング)
  • migrations/: directory(存在する場合)
  • uploads/: directory(ロゴ等のアップロード先)
  • その他設定ファイルやユーティリティファイル

…他 10 ファイル

まとめ

シンプルで導入しやすい Flask 製ブログ、拡張とセキュリティ強化が次の課題。

リポジトリ情報:

READMEの抜粋:

Flask 博客系统

一个简洁大方的博客系统,基于 Flask 构建,支持 SQLite 和 MySQL 数据库。 商业的太复制,免费的功能太弱,由此诞生了zenjong版的blog

功能特性

内容管理

  • ✅ 文章列表展示
  • ✅ 文章详情查看
  • ✅ 创建新文章
  • ✅ 编辑文章
  • ✅ 删除文章
  • ✅ 文章浏览次数统计
  • ✅ 分页功能

后台管理

  • ✅ 网站名称设置
  • ✅ Logo 图片上传
  • ✅ 版权声明设置
  • ✅ 网站副标题设置

界面设计

  • ✅ 简洁的白色+灰色主题设计
  • ✅ 响应式布局,支持移动端

安装步骤

1. 安装依赖

pip install -r requirements.txt

2. 启动应用

方式一:使用启动脚本(推荐)

运行启动脚本,会引导您选择数据库类型:

python run.py

启动脚本会提示您选择:

  • SQLite(本地数据库,无需配置)
  • MySQL(需要输入连接信息)

方式二:直…