在 Flask 中使用 SQLite3数据库,并且想要实现下拉式查询
时间: 2023-05-26 14:01:47 浏览: 66
你需要执行以下步骤:
1. 在 Flask 中安装 SQLite3
```python
pip install flask_sqlalchemy
```
2. 创建数据库
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
db.create_all()
```
3. 添加数据
```python
user1 = User(name='Alice')
user2 = User(name='Bob')
db.session.add(user1)
db.session.add(user2)
db.session.commit()
```
4. 实现下拉式查询
```python
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
@app.route('/users')
def users():
name = request.args.get('name', '').strip()
query = User.query.filter(User.name.like('%{}%'.format(name)))
users = [{'id': user.id, 'name': user.name} for user in query]
return jsonify(users)
if __name__ == '__main__':
app.run()
```
这个例子中,我们使用 `request.args.get()` 获取查询参数,并使用 `User.query.filter()` 进行查询。`like()` 方法可以用来模糊匹配查询,这里用 `%{}%` 包裹查询关键字。最后,我们将查询结果转换为 JSON 格式,并通过 `jsonify()` 进行返回。