尝试在sqlalchemy中创建表时出错=> sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:dht_new

问题描述 投票:0回答:2

即使我用create_table创建了它也找不到我的数据库?我试图把功能create_Table“在不同的地方没有结果?但是我得到了错误,

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: dht_new
[SQL: INSERT INTO dht_new (name) VALUES (?)]
[parameters: (None,)]

app.py

import os
from flask import Flask, request, jsonify
from flask_restful import Resource, Api
from flask_sqlalchemy import SQLAlchemy
from db import db


app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('SQLALCHEMY_DATABASE_URI', 'sqlite:///newdata.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

@app.before_first_request
def create_tables():
    db.create_all()


class fixdb(db.Model):
    __tablename__ = 'dht_new'

    id = db.Column(db.Integer, primary_key =True)
    name = db.Column(db.String(80))


    def __init__(self, temp):
        self.temp = temp

    def add_to_db(self):
        db.session.add(self)
        db.session.commit()


@app.route('/get', methods=['GET'])
def postrandom():
    temp = {'temperature': '23'}
    test_temp = fixdb(temp)

    test_temp.add_to_db()
    return jsonify(temp)



if __name__ == '__main__':
    from db import db
    db.init_app(app)
    app.run(port=5000, debug=True)
python sqlite sqlalchemy flask-sqlalchemy create-table
2个回答
0
投票

run.py

from app import app
from db import db

db.init_app(app)

@app.before_first_request
def create_tables():
    db.create_all()

0
投票

您需要首先在SQLite数据库中创建表。您可以使用SQLite Browser执行相同操作,否则使用python CLI创建表。由于您没有提及.py文件名,因此我无法确切地向您显示代码,但是它就像这样首先在您的终端中键入python,然后

from app import db
db.drop_all()
db.create_all()

这应该为您做。

© www.soinside.com 2019 - 2024. All rights reserved.