【发布时间】:2021-04-11 07:09:28
【问题描述】:
所以我制作了一个个人网络服务器来抓取一些网站并在网页上显示数据。但是当我尝试将结果提交到数据库时,我收到了我提交的每个视频的警告。我想知道这个警告是否可以修复或至少隐藏?
这是我的代码:
from web_scraper import db
from web_scraper.models import Video
old_db = Video.query.all() # existing database to compare with the new one
db_queue = list() # scraping results ready to be added to the database
### web scraping occurs here to fill db_queue
db.drop_all() # reset db
db.create_all() # recreate a new one
for vid in db_queue:
db.session.add(vid) # adding all pending results
db.session.commit() # error thrown here
这是完整的警告输出:
C:\DevApps\Python38\lib\site-packages\sqlalchemy\orm\session.py:1948: SAWarning: Identity map already had
an identity for (<class 'web_scraper.models.Video'>, (2133,), None), replacing it with newly flushed object.
Are there load operations occurring inside of an event handler within the flush?
【问题讨论】:
-
尝试在
db.create_all之前做commit -
@sahasrara62 我收到了这个错误
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: videosqlalche.me/e/13/e3q8
标签: python python-3.x sqlalchemy flask-sqlalchemy