初始化技术博客项目
功能特性: - 前端文章展示 (Markdown渲染、代码高亮) - 后台管理系统 (文章、分类、标签、作者管理) - 图片上传 (点击、拖拽、粘贴) - 网站设置 (Logo、底部宣传图片上传) - 访问统计 (IP记录、趋势图表) - 参考来源、附件支持 - 单端口部署 (16012) 技术栈: - Flask 3.0 + SQLAlchemy - SQLite数据库 - marked.js + highlight.js (Markdown渲染) - Chart.js (统计图表)
This commit is contained in:
86
app/templates/admin/dashboard.html
Normal file
86
app/templates/admin/dashboard.html
Normal file
@@ -0,0 +1,86 @@
|
||||
{% extends 'admin/base.html' %}
|
||||
|
||||
{% block title %}仪表盘{% endblock %}
|
||||
{% block page_title %}仪表盘{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="stats-grid">
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">📄</div>
|
||||
<div class="stat-info">
|
||||
<div class="stat-value">{{ stats.total_articles }}</div>
|
||||
<div class="stat-label">文章总数</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">✅</div>
|
||||
<div class="stat-info">
|
||||
<div class="stat-value">{{ stats.published_articles }}</div>
|
||||
<div class="stat-label">已发布</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">📁</div>
|
||||
<div class="stat-info">
|
||||
<div class="stat-value">{{ stats.total_categories }}</div>
|
||||
<div class="stat-label">分类数</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="stat-card">
|
||||
<div class="stat-icon">👁️</div>
|
||||
<div class="stat-info">
|
||||
<div class="stat-value">{{ stats.total_views }}</div>
|
||||
<div class="stat-label">总阅读量</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="recent-section">
|
||||
<div class="section-header">
|
||||
<h2>最近文章</h2>
|
||||
<a href="{{ url_for('admin.article_create') }}" class="btn btn-primary">+ 新建文章</a>
|
||||
</div>
|
||||
|
||||
{% if recent_articles.items %}
|
||||
<table class="data-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>标题</th>
|
||||
<th>分类</th>
|
||||
<th>状态</th>
|
||||
<th>阅读量</th>
|
||||
<th>更新时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for article in recent_articles.items %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{ url_for('admin.article_edit', article_id=article.id) }}">
|
||||
{{ article.title }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ article.category.name if article.category else '-' }}</td>
|
||||
<td>
|
||||
{% if article.is_published %}
|
||||
<span class="badge badge-success">已发布</span>
|
||||
{% else %}
|
||||
<span class="badge badge-warning">草稿</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>{{ article.view_count }}</td>
|
||||
<td>{{ article.updated_at|datetime_format('%Y-%m-%d %H:%M') }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<div class="empty-state">
|
||||
<p>暂无文章,<a href="{{ url_for('admin.article_create') }}">创建第一篇文章</a></p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user