from flask import Flask, render_template, redirect, url_for, send_from_directory, make_response, g
import os
import sqlite3
import secrets
# 引入蓝图
from blueprint.blog_views import blog_bp
from blueprint.study_views import study_bp
from flask_autoindex import AutoIndex
from blueprint.kami_views import kami_bp
from blueprint.index_views import index_bp
# 引入api
from api.docs import docs_api
from api.api import api_api
def get_owp_db_conn():
conn = sqlite3.connect('/var/open-ww3-project-ww3-tw/databases/sqlite/owp.db')
conn.row_factory = sqlite3.Row
return conn
app = Flask(__name__, static_url_path='/static/')
# session
# 随机数生成
key_hex = secrets.token_hex(32)
app.secret_key = key_hex
# 注册蓝图
app.register_blueprint(blog_bp, url_prefix='/blog')
app.register_blueprint(study_bp, url_prefix='/study')
app.register_blueprint(kami_bp, url_prefix='/kami')
app.register_blueprint(index_bp, url_prefix='/')
# 注册api
app.register_blueprint(docs_api, url_prefix='/api/docs')
app.register_blueprint(api_api, url_prefix='/api/s/')
# 全局清理关闭数据库连接
@app.teardown_appcontext
def close_connection(exception):
db = getattr(g, '_database', None)
if db is not None:
db.close()
@app.errorhandler(400)
def bad_request(error):
return (
'400 Bad Request
'
'请求有误,请检查参数是否正确'
'