Python 提交时未保存烧瓶测试数据库
我有以下flask factory目录设置:Python 提交时未保存烧瓶测试数据库,python,flask,flask-sqlalchemy,python-unittest,flask-testing,Python,Flask,Flask Sqlalchemy,Python Unittest,Flask Testing,我有以下flask factory目录设置: server/ __init__.py .env wsgi.py app/ __init__.py config/ __init__.py config.py test_config.py models/ __init__.py sku.py
server/
__init__.py
.env
wsgi.py
app/
__init__.py
config/
__init__.py
config.py
test_config.py
models/
__init__.py
sku.py
views/
__init__.py
sku_bp.py
tests/
__init__.py
test_sku_view.py
create\u-app
方法在server/app/\uuuuuu-init\uuuuuuuu.py
中定义:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app(config):
app = Flask(__name__, instance_relative_config=False)
app.config.from_object(config)
db.init_app(app)
with app.app_context()
from app.views.sku_bp import sku_bp
app.register_blueprint(sku_bp, url_prefix='/api/sku/')
return app
模型(server/app/models/sku.py
)和蓝图(server/app/views/sku_bp.py
)由以下公式给出:
from app import db
class SKU(db.Model):
__tablename__ = 'sku'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False)
def to_dict(self):
return {'id': self.id, 'name': self.name}
及
其中服务器/tests/io/test.sku.csv
文件如下所示:
id,name
1,'A'
2,'B'
class TestConfig():
DEBUG = True
TESTING = True
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
SQLALCHEMY_DATABASE_URI = 'sqlite:////tmp/test.db'
而server/app/config/test\u config.py
文件如下所示:
id,name
1,'A'
2,'B'
class TestConfig():
DEBUG = True
TESTING = True
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True
SQLALCHEMY_DATABASE_URI = 'sqlite:////tmp/test.db'
我使用
python3.7tests/test\u sku\u view.py
从server/
目录中调用此脚本但是,当我打印查询数据库的sku
列表时,不会返回任何内容,即sku=[]
。请问我哪里出了问题?我知道正在正确生成sku
,但提交时它似乎没有保存在数据库中…您需要在提交之前添加一个db.session.add(sku)
,显然是在for循环中:-)Facepalm。。。。谢谢。很高兴我能帮忙:-)