# Author: jianglin # Email: [email protected] # Created: 2016-07-24 15:10:52 (CST) # Last Update:星期六 2016-11-12 20:24:58 (CST) # By: # Description: # ************************************************************************** from maple.extension import db from maple.tag.models import Tags from datetime import datetime from flask_login import UserMixin from werkzeug.security import (generate_password_hash, check_password_hash) from sqlalchemy import event roles_permissions = db.Table( 'roles_permissions', db.Column('role_id', db.Integer, db.ForeignKey('roles.id')), db.Column('permission_id', db.Integer, db.ForeignKey('permissions.id'))) routes_permissions = db.Table( 'routes_permissions', db.Column('route_id', db.Integer, db.ForeignKey('routes.id')), db.Column('permission_id', db.Integer, db.ForeignKey('permissions.id'))) class Route(db.Model): __tablename__ = 'routes' id = db.Column(db.Integer, primary_key=True) endpoint = db.Column(db.String(256), nullable=False) rule = db.Column(db.String(512), nullable=False) permissions = db.relationship('Permiss', secondary=routes_permissions,
def __repr__(self): return "<TimeLine %r>" % self.content[:10] def __str__(self): return self.content[:10] @property def datetime_format(self): return format_datetime(self.created_at, 'Y-M-d H:M') def to_json(self): return {'id': self.id, 'content': self.content, 'hide': self.hide} tag_blog = db.Table('tag_blog', db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')), db.Column('blog_id', db.Integer, db.ForeignKey('blog.id'))) class Tag(db.Model, ModelMixin): __tablename__ = 'tag' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False) blogs = db.relationship('Blog', secondary=tag_blog, backref=db.backref('tags', lazy='dynamic'), lazy='dynamic') def __repr__(self): return '<Tags %r>' % self.name
# self.password_hash = generate_password_hash(password) # def verify_password(self, password): # return check_password_hash(password) @staticmethod def set_password(password): pw_hash = generate_password_hash(password) return pw_hash def check_password(self, password): return check_password_hash(self.password, password) roles_parents = db.Table( 'roles_parents', db.Column('role_id', db.Integer, db.ForeignKey('roles.id')), db.Column('parent_id', db.Integer, db.ForeignKey('roles.id'))) class Role(db.Model): __tablename__ = 'roles' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(81), nullable=False, default='unconfirmed') description = db.Column(db.String(255), nullable=True) parents = db.relationship( 'Role', secondary=roles_parents, primaryjoin=(id == roles_parents.c.role_id), secondaryjoin=(id == roles_parents.c.parent_id), backref=db.backref('children'))
# -*- coding=UTF-8 -*- # ************************************************************************** # Copyright © 2016 jianglin # File Name: models.py # Author: jianglin # Email: [email protected] # Created: 2016-07-20 17:00:08 (CST) # Last Update:星期六 2016-11-12 20:20:28 (CST) # By: # Description: # ************************************************************************** from maple.extension import db from datetime import datetime tag_topic = db.Table( 'tag_topic', db.Column('tags_id', db.Integer, db.ForeignKey('tags.id')), db.Column('topics_id', db.Integer, db.ForeignKey('topics.id'))) tags_parents = db.Table( 'tags_parents', db.Column('tag_id', db.Integer, db.ForeignKey('tags.id')), db.Column('parent_id', db.Integer, db.ForeignKey('tags.id'))) class Tags(db.Model): __tablename__ = 'tags' id = db.Column(db.Integer, primary_key=True) time = db.Column(db.DateTime, default=datetime.utcnow()) tagname = db.Column(db.String(64), nullable=False) summary = db.Column(db.Text) tags = db.relationship('Topic', secondary=tag_topic,
def __str__(self): return self.content[:10] @property def datetime_format(self): return format_datetime(self.created_at, 'Y-M-d H:M') def to_json(self): return {'id': self.id, 'content': self.content, 'hide': self.hide} article_tags = db.Table( 'article_tags', db.Column( 'tag_id', db.Integer, db.ForeignKey('tag.id'), ), db.Column( 'article_id', db.Integer, db.ForeignKey('article.id'), )) class Tag(db.Model, ModelMixin): __tablename__ = 'tag' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50), nullable=False) articles = db.relationship('Article', secondary=article_tags, backref=db.backref('tags', lazy='dynamic'), lazy='dynamic')