Fix SQLAlchemy deprecation warnings

- Import text from sqlalchemy
- Wrap "SELECT 1" statements in text() function in index() and
  detail_page()
- Addresses SQLAlchemy 2.0+ requirement for explicit text() wrapper on
  raw SQL strings
This commit is contained in:
Edward Betts 2025-07-15 08:46:04 +00:00
parent 98d11b62a6
commit 78b8a7d07f

View file

@ -15,7 +15,7 @@ from flask import Flask, jsonify, redirect, render_template, request, url_for
from pygments import highlight from pygments import highlight
from pygments.formatters import HtmlFormatter from pygments.formatters import HtmlFormatter
from pygments.lexers import SparqlLexer from pygments.lexers import SparqlLexer
from sqlalchemy import func from sqlalchemy import func, text
from sqlalchemy.orm.query import Query from sqlalchemy.orm.query import Query
from werkzeug.wrappers import Response from werkzeug.wrappers import Response
@ -238,7 +238,7 @@ def handle_database_error(error: Exception) -> tuple[str, int]:
def index() -> str | Response: def index() -> str | Response:
"""Index page.""" """Index page."""
t0 = time() t0 = time()
database.session.execute("SELECT 1") database.session.execute(text("SELECT 1"))
q = request.args.get("q") q = request.args.get("q")
if q and q.strip(): if q and q.strip():
return redirect_to_detail(q) return redirect_to_detail(q)
@ -351,7 +351,7 @@ def build_detail_page(lat: float, lon: float) -> str:
@app.route("/detail") @app.route("/detail")
def detail_page() -> Response | str: def detail_page() -> Response | str:
"""Detail page.""" """Detail page."""
database.session.execute("SELECT 1") database.session.execute(text("SELECT 1"))
try: try:
lat_str, lon_str = request.args["lat"], request.args["lon"] lat_str, lon_str = request.args["lat"], request.args["lon"]
lat, lon = float(lat_str), float(lon_str) lat, lon = float(lat_str), float(lon_str)