diff --git a/.gitignore b/.gitignore
index bca1a64..3ab65af 100755
--- a/.gitignore
+++ b/.gitignore
@@ -3,4 +3,6 @@
**/*.sql
**/*.db.back
databases/*
-mirrors/*
\ No newline at end of file
+mirrors/*
+blueprint/kami_views.py
+templates/kami/*
\ No newline at end of file
diff --git a/blueprint/blog_views.py b/blueprint/blog_views.py
index e606127..6581767 100755
--- a/blueprint/blog_views.py
+++ b/blueprint/blog_views.py
@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, request, url_for, flash, redirect
+from flask import Blueprint, render_template, request, url_for, flash, redirect, send_from_directory, make_response, current_app
from database import get_owp_db
import os
import sqlite3
@@ -57,4 +57,29 @@ def test_db():
except Exception as e:
return f"连接失败: {str(e)}"
+######
+## 网站地图 及其 robots 配置
+@blog_bp.route('/robots.txt/')
+def robots():
+ return send_from_directory(current_app.static_folder, 'robots.txt')
+
+@blog_bp.route('/google02f6a3f6004a32c6.html')
+def google02f6a3f6004a32c6():
+ return send_from_directory(blog_bp.static_folder, 'google02f6a3f6004a32c6.html')
+
+
+@blog_bp.route('/sitemap.xml/')
+def sitemap():
+ conn = get_owp_db_conn()
+ sql_posts = "SELECT * from posts;"
+ posts = conn.execute(sql_posts).fetchall()
+ conn.close()
+ template = render_template('sitemap.xml', posts=posts[::-1], base_url="https://open-ww3-project.ww3.tw/blog/")
+ response = make_response(template)
+ response.headers['Content-Type'] = 'application/xml'
+ return response
+
+@blog_bp.errorhandler(404)
+def not_found_error(error):
+ return '404 not found', 404
\ No newline at end of file
diff --git a/main.py b/main.py
index d507b03..d9da5ae 100755
--- a/main.py
+++ b/main.py
@@ -2,7 +2,7 @@ from flask import Flask, render_template, redirect, url_for, send_from_directory
from blueprint.blog_views import blog_bp
from blueprint.study_views import study_bp
from flask_autoindex import AutoIndex
-# from blueprint.admin_views import admin_bp
+from blueprint.kami_views import kami_bp
import os
import sqlite3
@@ -25,7 +25,7 @@ app.secret_key = '玩鵬畝遜溉痕叛課還擇鼇粹拜溜泉聰倡效蘭鱅
# 注册蓝图
app.register_blueprint(blog_bp, url_prefix='/blog')
app.register_blueprint(study_bp, url_prefix='/study')
-# app.register_blueprint(admin_bp, url_prefix='/admin')
+app.register_blueprint(kami_bp, url_prefix='/kami')
@app.route('/')
@@ -51,27 +51,64 @@ def close_connection(exception):
def autoindex(path='.'):
return index.render_autoindex(path, template='mirrors.html')
-@app.route('/robots.txt/')
-def robots():
- return send_from_directory(app.static_folder, 'robots.txt')
-
-@app.route('/google02f6a3f6004a32c6.html')
-def google02f6a3f6004a32c6():
- return send_from_directory(app.static_folder, 'google02f6a3f6004a32c6.html')
+@app.errorhandler(400)
+def bad_request(error):
+ return (
+ '400 Bad Request
'
+ '请求有误,请检查参数是否正确'
+ '
2025.12.22
+2025.08.05
over
- \ No newline at end of file +