即使我用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()
这应该为你做这件事。