Я изучаю Rest-API с python в Ubuntu.Я хочу использовать SQLAlchemy для хранения моих данных в базе данных SQLite.это мои коды
BookModel.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import json
from settings import app
db=SQLAlchemy(app)
class Book(db.Model):
__tablename__='books'
что мне делать?
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(80),nullable=False)
price = db.Column(db.Float,nullable=False)
isbn =db.Column(db.Integer)
def add_book(_name,_price,_isbn):
new_book=Book(name=_name,price=_price,isbn=_isbn)
db.Session.add(new_book)
db.Session.commit()
def get_all_books(self):
return Book.query.all()
def __repr__(self):
book_object = {'name':self.name,
'price':self.price,
'isbn':self.isbn}
return json.dump(book_object)
settings.py
import os
from flask import Flask
app = Flask(__name__)
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///' + os.path.join(basedir, 'app.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
я использую приведенные ниже команды в python для создания базы данных, и это работает.
>>> from BookModel import db
>>> db.create_all()
далее я использую приведенные ниже команды для проверки метода add_book ().
>>> from BookModel import *
>>> Book.add_book("ss",55.6,556)
но PyCharm покажет мне ошибку ниже.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/momo/Projects/flask_rest_aPI /BookModel.py", line 18, in add_book
db.Session.add(new_book)
TypeError: add() missing 1 required positional argument: 'instance'