我想知道您是否可以提供帮助,我正在尝试将数据库链接到 API,每当我尝试运行它时,它都会给我错误
<块引用>sqlite3.OperationalError:没有这样的表:animal_information
我知道表格已经创建并且它有内容,因为每当我尝试打印它时它都可以工作,但是由于某些原因,当在代码中时它会出现错误,如果有人可以提供帮助那就太好了!完整代码如下。
import flask
from flask import Flask, request, jsonify
import sqlite3
app = flask.Flask(__name__)
app.config["DEBUG"] = True
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
@app.route('/', methods=['GET'])
def home():
return '''<h1>Animals Archive </h1>
<p>A prototype API to store animals data for our Code First Girl Project.</p>'''
@app.route('/api/v1/resources/animals/all', methods=['GET'])
def api_all():
conn = sqlite3.connect('animals_information.db')
conn.row_factory = dict_factory
cur = conn.cursor()
all_animals = cur.execute('SELECT * FROM animals_information;').fetchall()
return jsonify(all_animals)
@app.errorhandler(404)
def page_not_found(e):
return "<h1>404</h1><p>The resource could not be found.</p>", 404
@app.route('/api/v1/resources/animals', methods=['GET'])
def api_filter():
query_parameters = request.args
id = query_parameters.get('id')
name = query_parameters.get('name')
size = query_parameters.get('size')
fluffiness = query_parameters.get('fluffiness')
grumpiness = query_parameters.get('grumpiness')
friendliness = query_parameters.get('friendliness')
intelligence = query_parameters.get('intelligence')
mischief = query_parameters.get('mischief')
cuteness = query_parameters.get('cuteness')
query = "SELECT * FROM animals_information WHERE"
to_filter = []
if id:
query += ' id=? AND'
to_filter.append(id)
if name:
query += ' name=? AND'
to_filter.append(name)
if size:
query += ' size=? AND'
to_filter.append(size)
if fluffiness:
query += ' fluffiness=? AND'
to_filter.append(fluffiness)
if grumpiness:
query += ' grumpiness=? AND'
to_filter.append(grumpiness)
if friendliness:
query += ' friendliness=? AND'
to_filter.append(friendliness)
if intelligence:
query += ' intelligence=? AND'
to_filter.append(intelligence)
if mischief:
query += ' mischief=? AND'
to_filter.append(mischief)
if cuteness:
query += ' cuteness=? AND'
to_filter.append(cuteness)
query = query[:-4] + ';'
conn = sqlite3.connect('animals_information.db')
conn.row_factory = dict_factory
cur = conn.cursor()
results = cur.execute(query, to_filter).fetchall()
return jsonify(results)
app.run()