在呈现模板之前,我要检查正在使用的数据库是否可用。数据库只有特定的IP才可用,因此,如果有人试图访问页面,我不想出错,而是重定向到不同的模板,而不需要数据库。
错误信息:
(2003, "Can't connect to MySQL server on 'db-test' (110)")
(Background on this error at: https://sqlalche.me/e/14/e3q8)错误本身没有问题,我只想检查数据库是否是可访问的,而不需要等到加载页面时出现错误。
storage.py:
from flask_sqlalchemy import SQLAlchemy
db_req = SQLAlchemy()
class Requests(db_req.Model):
__tablename__ = 'requests'
id = db_req.Column(db_req.Integer, primary_key=True, nullable=False)
created = db_req.Column(db_req.DateTime, nullable=False)
name = db_req.Column(db_req.String, nullable=False)app.py:
from flask import Flask
from models import db_req
from views.requests import requests
app = Flask(__name__)
app.register_blueprint(requests)
app.config.from_object("config.Config")
db_req.init_app(app)
if __name__ == '__main__':
app.run(debug=True)requests.py:
from flask import Blueprint, render_template, request
from query_request_db import get_fields
requests = Blueprint("requests", __name__)
@requests.route("/", methods=["GET", "POST"])
def requests_page():
# need to check before everything if I can access database not to error out
return render_template("requests_page.html", names=get_fields.get_field_data("name"))我试图找到一种方法来检查数据库是否可用,而不出错。欢迎任何帮助!
发布于 2022-03-08 19:54:54
希望我能理解你对吧?你想检查你网页查看者的ip地址。
那么你就可以用
request.remote_addr要验证可以访问数据库的IP Adress,只需执行重定向即可。
https://stackoverflow.com/questions/71399510
复制相似问题