1,没有个table设置主键的情况下,却设置了个外键,导致出现DB无发变更。
sqlalchemy.exc.ArgumentError: Mapper Mapper|Content_of_bbs|contents could not assemble any primary key columns for mapped table 'contents'
class User(db.Model):
__tablename__ = 'user'
id = db.Column(db.Integer,primary_key = True,autoincrement=True)
telephone=db.Column(db.String(11),nullable=False)
username = db.Column(db.String(50), nullable=False)
password = db.Column(db.String(100), nullable=False)
class Content_of_bbs(db.Model):
__tablename__='contents'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)#不设置,会导致错误。。。
user_id=db.Column(db.Integer,db.ForeignKey('user.id'))
content=db.Column(db.TEXT())
time=db.Column(db.DATETIME)
2,装饰器没有返回错误
return wrapper位置不对,导致login_requied没有返回值。出现以下错误:
File "C:\Python27\lib\site-packages\flask\app.py", line 1011, in add_url_rule
endpoint = _endpoint_from_view_func(view_func)
File "C:\Python27\lib\site-packages\flask\helpers.py", line 68, in _endpoint_from_view_func
assert view_func is not None, 'expected view func if endpoint ' \
AssertionError: expected view func if endpoint is not provided.
def login_requied(func):
@wraps(func)
def wrapper(*args,**kwargs):
if session.get('user_id'):
return func(*args,**kwargs)
else:
return redirect(url_for('login'))
return wrapper