add search

This commit is contained in:
William Bell committed 2026-03-03 17:15:34 +00:00
1 parent 7d97832072
commit 401fd737e0
4 files changed
+31 -5

No files matched your search

+1 -1
View File
@@ -11,7 +11,7 @@ def add_category_column():
cursor = conn.cursor()
category = input("What category do you want to add to the species table? ").lower()
if not column_exists(cursor, "species", category):
cursor.execute(f"ALTER TABLE species ADD COLUMN {category} TEXT")
cursor.execute(f"ALTER TABLE species ADD COLUMN ? TEXT", (category,))
print(f"Column '{category}' added.")
else:
print("Column already exists.")
+24
View File
@@ -23,6 +23,30 @@ def get_all_species():
return [dict(row) for row in rows]
def get_species_by_name(species_english):
with get_db() as conn:
row = conn.execute(
"SELECT * FROM species WHERE species_english = ?",
(species_english,)
).fetchone()
return dict(row) if row else None
def search_species(query):
with get_db() as conn:
rows = conn.execute(
"""SELECT *
FROM species
WHERE
instr(LOWER(COALESCE(CAST(species_english AS TEXT), '')), ?1) > 0
OR instr(LOWER(COALESCE(CAST(species_latin AS TEXT), '')), ?1) > 0
OR instr(LOWER(COALESCE(CAST(body_text AS TEXT), '')), ?1) > 0
OR instr(LOWER(COALESCE(CAST(category AS TEXT), '')), ?1) > 0
OR instr(LOWER(COALESCE(CAST(extinction_risk AS TEXT), '')), ?1) > 0;""",
(query.lower(),)
).fetchmany()
return [dict(row) for row in rows]
def get_species_by_name(species_english):
with get_db() as conn:
row = conn.execute(
+5 -3
View File
@@ -1,7 +1,7 @@
from flask import render_template, Blueprint
from flask import render_template, Blueprint, request
import configparser
from database.db_commands import get_all_species
from database.db_commands import get_all_species, search_species
config = configparser.ConfigParser()
@@ -30,4 +30,6 @@ def all_species():
def search():
query = request.args.get("search-query")
return render_template("/species/species_search.jinja", results=results)
results = search_species(query)
return render_template("/species/species_search.jinja", results=results, query=query)
+1 -1
View File
@@ -11,7 +11,7 @@ Species Database
{# All Species #}
<div>
<form action="/species/search" method="GET" class="search">
<input type="text" name="search-query" placeholder="Search all species..." class="bar">
<input type="text" name="search-query" placeholder="Search all species..." value="{{query}}" class="bar">
<input type="submit" value="Search" class="button">
</form>
</div>