sqlite3.OperationalError:没有这样的表:

时间:2021-04-19 18:42:15

标签: python-3.x database api

我想知道您是否可以提供帮助,我正在尝试将数据库链接到 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()

0 个答案:

没有答案