在模板中的class里定义函数,可以直接使用SQLAlchemy来调用数据。比如 class User(db.Model): __tablename__ = 'users' id = db.Column(db.Integer,primary_key=True) email = db.Column(db.String(64), unique=True, index=True) username = db.Column(db.String(64),unique=True,index=True) password_hash = db.Column(db.String(128)) last_seen = db.Column(db.DateTime(), default=datetime.datetime.utcnow) def ping(self): self.last_seen = datetime.datetime.utcnow() db.session.add(self) #直接将数据储存到db def change_email(self, token): s = Serializer(current_app.config['SECRET_KEY']) try: data = s.loads(token) except: return False if data.get('change_email') != self.id: return False new_email = data.get('new_email') if new_email is None: return False if self.query.filter_by(email=new_email).first() is not None: #调用数据做判断 return False self.email = new_email self.avatar_hash = hashlib.md5( self.email.encode('utf-8')).hexdigest() db.session.add(self) return True
楼上正解定义一个函数func_test,然后注册到jinja的filters中,如下app.jinja_env.filters['func_filter'] = func_test然后在template中就可以使用了
在模板中的class里定义函数,可以直接使用SQLAlchemy来调用数据。比如