实现基于多参数的搜索功能通常涉及以下几个步骤:
以下是一个基于多参数搜索功能的简单示例,使用Python和SQLAlchemy(一个ORM工具)来实现。
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class Product(Base):
__tablename__ = 'products'
id = Column(Integer, primary_key=True)
name = Column(String)
brand = Column(String)
price = Column(Integer)
created_at = Column(DateTime)
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
def search_products(name=None, brand=None, min_price=None, max_price=None):
query = session.query(Product)
if name:
query = query.filter(Product.name.ilike(f'%{name}%'))
if brand:
query = query.filter(Product.brand == brand)
if min_price:
query = query.filter(Product.price >= min_price)
if max_price:
query = query.filter(Product.price <= max_price)
return query.all()
# 示例调用
results = search_products(name="laptop", brand="Dell", min_price=500, max_price=1000)
for product in results:
print(product.name, product.brand, product.price)
前端通常通过表单收集用户输入的搜索参数,并将这些参数发送到后端进行处理。以下是一个简单的HTML表单示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Product Search</title>
</head>
<body>
<form action="/search" method="GET">
<input type="text" name="name" placeholder="Product Name">
<input type="text" name="brand" placeholder="Brand">
<input type="number" name="min_price" placeholder="Min Price">
<input type="number" name="max_price" placeholder="Max Price">
<button type="submit">Search</button>
</form>
</body>
</html>
通过以上步骤和方法,可以有效地实现一个基于多参数的搜索功能。
领取专属 10元无门槛券
手把手带您无忧上云