gpt4 book ai didi

python - Flask返回404错误的随机模板

转载 作者:行者123 更新时间:2023-12-03 08:17:56 24 4
gpt4 key购买 nike

Flask不断返回奇怪的404默认模板,并忽略了我的定制模板。我不知道为什么。
这是我的初始

def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(config_class)

db.init_app(app)
#Fixes flask db upgrade to allow deleting columns
with app.app_context():
if db.engine.url.drivername == 'sqlite':
migrate.init_app(app, db, render_as_batch=True)
else:
migrate.init_app(app, db)
login.init_app(app)
babel.init_app(app)
bootstrap.init_app(app)
moment.init_app(app)

app.logger.setLevel(logging.INFO)
app.logger.info('Bob startup')
app.redis = Redis.from_url(app.config['REDIS_URL'])
app.task_queue = rq.Queue('offutt-tasks', connection=app.redis)

from app.errors import bp as errors_bp
app.register_blueprint(errors_bp)

from app.main import bp as main_bp
app.register_blueprint(main_bp)

return app

from app import models
这是我的错误文件夹中的 初始:
from flask import Blueprint

bp = Blueprint('errors', __name__)

from app.errors import handlers
最后,这是我的路线处理程序页面。
from flask import render_template, request
from app import db
from app.errors import bp
#from app.api.errors import error_response as api_error_response

def wants_json_response():
return request.accept_mimetypes['application/json'] >= \
request.accept_mimetypes['text/html']

@bp.errorhandler(404)
def not_found_error(error):
#if wants_json_response():
# return api_error_response(404)
return render_template('errors/404.html'), 404


@bp.errorhandler(500)
def internal_error(error):
db.session.rollback()
#if wants_json_response():
# return api_error_response(500)
return render_template('errors/500.html'), 500
当我编写直接转到它的路由时,我的404.html可以很好地显示,但是错误处理程序似乎根本不起作用。它呈现的只是一个页面,上面写着“在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写,然后重试。”
有任何想法吗?

最佳答案

您需要使用app_errorhandler()来将其用于所有请求,即使是在蓝图doc之外。例如。

@bp.app_errorhandler(404)
def not_found_error(error):
....

关于python - Flask返回404错误的随机模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63732957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com