当前位置:   article > 正文

python db.commit_Flask和SQLAlchemy db.session.commit不工作

sqlalchemy update commit不生效

当我向User表添加一个测试用户时,它会添加fine,即使在我执行db.session.add(u)时也会添加fine,但在我执行db.session.commit()时它会抛出错误。from app import db

class User(db.Model):

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.Integer(120), unique=True)

email = db.Column(db.Integer(120), unique=True)

configkey = db.Column(db.Integer(200), unique=True)

dob = db.Column(db.DateTime)

country = db.Column(db.Integer(120))

friends = db.relationship('Friend', backref = 'friendof', lazy = 'dynamic')

def __repr__(self):

return '' % (self.name)

class Friend(db.Model):

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.Integer(120), unique=True)

email = db.Column(db.Integer(120), unique=True)

dob = db.Column(db.DateTime)

country = db.Column(db.Integer(120))

lastmessage = db.Column(db.Integer(1500))

user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

def __repr__(self):

return '' % (self.name)

--编辑,包括Python控制台中的错误消息:>>> u = models.User(name="sd", email="e")

>>> db.session.add(u)

>>> db.session.commit()

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/scoping.py", line 149, in do

return getattr(self.registry(), name)(*args, **kwargs)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 721, in commit

self.transaction.commit()

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 354, in commit

self._prepare_impl()

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 334, in _prepare_impl

self.session.flush()

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1818, in flush

self._flush(objects)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1936, in _flush

transaction.rollback(_capture_exception=True)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__

compat.reraise(exc_type, exc_value, exc_tb)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/session.py", line 1900, in _flush

flush_context.execute()

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute

rec.execute(self)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute

uow

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 64, in save_obj

table, insert)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/orm/persistence.py", line 569, in _emit_insert_statements

execute(statement, params)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute

params)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement

compiled_sql, distilled_params

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context

context)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception

exc_info

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause

reraise(type(exception), exception, tb=exc_tb)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context

context)

File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute

cursor.execute(statement, parameters)

sqlalchemy.exc.OperationalError: (OperationalError) no such table: user u'INSERT INTO user (name, email, configkey, dob, country) VALUES (?, ?, ?, ?, ?)' ('sd'

, 'e', None, None, None)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/181077
推荐阅读
相关标签
  

闽ICP备14008679号