Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 提交时未保存烧瓶测试数据库_Python_Flask_Flask Sqlalchemy_Python Unittest_Flask Testing - Fatal编程技术网

Python 提交时未保存烧瓶测试数据库

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

我有以下flask factory目录设置:

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。。。。谢谢。很高兴我能帮忙:-)