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



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

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

应用程序

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)

run.py

from app import app
from db import db
db.init_app(app)
@app.before_first_request
def create_tables():
db.create_all()

您需要首先在SQLite数据库中创建表。您可以使用SQLite Browser执行同样的操作,也可以使用python CLI创建表。因为你没有提到你的.py文件名,所以我不能确切地给你看代码,但它应该是这样的
首先在你的终端中键入python,然后键入

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

这应该为你做这件事。

最新更新