class Shopping(db.Model,UserMixin): id = db.Column(db.Integer, primary_key=True) Item_Name = db.Column(db.String(100),nullable=False) Date = db.Column(db.DateTime,nullable=False) # default to datetime.today() Description = db.Column(db.String(500),nullable=False) Edited_by = db.Column(db.String(100), nullable=True) # username of who last edited it # be careful if user is deleted, thats why we put nullable=True user_id = db.Column(db.Integer,db.ForeignKey('user.id',ondelete="CASCADE"),nullable=True)
class QueuedEmail(db.Model): id = db.Column(db.Integer, primary_key=True) orig_send_time = db.Column(db.DateTime, default=datetime.datetime.utcnow) last_retry_time = db.Column(db.DateTime, default=datetime.datetime.utcnow) from_addr = db.Column(db.String(128), nullable=False) to_addr = db.Column(db.String(128), nullable=False) content = db.Column(db.Text, nullable=False)
class Grocery(db.Model,UserMixin): id = db.Column(db.Integer, primary_key=True) Name = db.Column(db.String(100),nullable=False) Type = db.Column(db.String(10),nullable=True) Type_id = db.Column(db.Integer,nullable=True) Date = db.Column(db.DateTime,nullable=False) # same as datetime in python user_id = db.Column(db.Integer,db.ForeignKey('user.id',ondelete="CASCADE"),nullable=True)
class User(UserMixin, db.Model): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(128), index=True, unique=True) password_hash = db.Column(db.String(128)) language = db.Column(db.String(2), default='en') credentials = db.relationship('AccountCredential', backref='owner', lazy='dynamic') scan_profiles = db.relationship('ScanProfile', backref='owner', lazy='dynamic') tasks = db.relationship('Task', backref='owner', lazy='dynamic') results = db.relationship('TaskResult', backref='owner', lazy='dynamic', order_by='desc(TaskResult.started)') def set_password(self, password: str) -> None: self.password_hash = generate_password_hash(password) def check_password(self, password: str) -> bool: return check_password_hash(self.password_hash, password) def __repr__(self) -> str: return f'User({self.username})'
class ExtraApplication(db.Model): __tablename__ = "extra_application" extra_application_number = db.Column(db.Integer, primary_key=True, autoincrement=True) extra_application_date = db.Column(db.Date, nullable=False) extra_application_reason = db.Column(db.String(1500), nullable=False) extra_application_status = db.Column(db.String(50), nullable=False) teacher_position = db.Column(db.String(100), nullable=False) teacher_pib = db.Column(db.String(100), nullable=False) personnel_number = db.Column(db.Integer, db.ForeignKey('teacher.personnel_number', onupdate="CASCADE", ondelete="CASCADE"), nullable=False) teacher = db.relationship("Teacher", back_populates="extra_application") def __init__(self, extra_application_reason, extra_application_date, extra_application_status, teacher_position, teacher_pib, personnel_number): self.extra_application_date = datetime.strptime( extra_application_date, '%Y-%m-%d').date() self.extra_application_reason = extra_application_reason self.extra_application_status = STATUS[extra_application_status].value self.teacher_position = teacher_position self.teacher_pib = teacher_pib self.personnel_number = personnel_number
class Report(db.Model): __tablename__ = 'report' id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 自增主键 name = db.Column(db.String(256), default='', nullable=False) # 报告名称 domain = db.Column(db.String(50), default='', nullable=False) # 域名 task_id = db.Column(db.Integer, default=0, nullable=False) # 任务ID job_id = db.Column(db.String(36), default='', nullable=False) # 执行的任务ID pdf = db.Column(db.String(100), default="", nullable=False) # PDF文件名 json = db.Column(db.Text, default='', nullable=False) # json格式数据 json_raw = db.Column(db.Text, default='', nullable=False) # 原始的JSON文件 create_time = db.Column(db.TIMESTAMP, default='0000-00-00 00:00:00', nullable=False) # 创建时间 def __init__(self, name=None, domain=None, task_id=None, job_id=None, pdf=None, json=None, json_raw=None, create_time=None): self.name = name self.domain = domain self.task_id = task_id self.job_id = job_id self.pdf = pdf self.json = json self.json_raw = json_raw self.create_time = create_time def to_dict(self): return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) # lastname = db.Column(db.String(64), index=True) # firstname = db.Column(db.String(64), index=True) # email_confirmation_sent_on = db.Column(db.DateTime, nullable=True) email = db.Column(db.String(120), index=True, unique=True) # phone = db.Column(db.String(64), index=True) # occupation = db.Column(db.String(64), index=True) username = db.Column(db.String(64), index=True, unique=True) password_hash = db.Column(db.String(128)) # email_confirmed = db.Column(db.Boolean, nullable=True, default=False) # email_confirmed_on = db.Column(db.DateTime, nullable=True) def set_password(self, password): self.password_hash = generate_password_hash(password) def is_correct_password(self, password): return check_password_hash(self.password_hash, password) def generate_auth_token(self, expires_in=3600): s = Serializer(app.config['SECRET_KEY'], expires_in=expires_in) return s.dumps({'id': self.id}).decode('utf-8') @staticmethod def verify_auth_token(token): s = Serializer(app.config['SECRET_KEY']) try: data = s.loads(token) except: return None return User.query.get(data['id']) def __repr__(self): return '<User {}>'.format(self.username)
class ReportModel(db.Model): ''' 自定义PDF报告模板 ''' __tablename__ = 'report_model' model_id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 自增主键 model_name = db.Column(db.String(100), nullable=False) # 模板名称 title = db.Column(db.String(100), nullable=True) # 标题 company = db.Column(db.String(100), nullable=True) # 单位名称 logo_filename = db.Column(db.String(100), nullable=True) # logo 图片文件名 footer = db.Column(db.String(100), nullable=True) # 页脚 user_id = db.Column(db.Integer, nullable=True) # 创建该模板的用户ID def __init__(self, model_name, title, company, logo_filename, footer, user_id=None): self.model_name = model_name self.title = title self.company = company self.logo_filename = logo_filename self.footer = footer self.user_id = user_id def to_dict(self): return dict(model_id=self.model_id, model_name=self.model_name, title=self.title, company=self.company, footer=self.footer)
class ApJobsTaskRef(db.Model): __tablename__ = "ap_jobs_task_ref" id = db.Column(db.Integer, primary_key=True, autoincrement=True) job_id = db.Column(db.String(191), nullable=False) worker_name = db.Column(db.String(32), nullable=True) parent_id = db.Column(db.String(191), nullable=True) task_id = db.Column(db.Integer) job_state = db.Column(db.String(250), nullable=True) job_status = db.Column(db.Integer, default=1, nullable=False) # 1: 未执行 2:执行中 3:完成 4:暂停 5:失败 run_time = db.Column(db.DATETIME, default=datetime.now, nullable=False) end_time = db.Column(db.DATETIME, nullable=True) desc = db.Column(db.String(250), nullable=True) def __init__(self, job_id, task_id, job_state=None, run_time=None, job_status=1, parent_id=None, end_time=None, desc=None): self.job_id = job_id self.task_id = task_id self.job_state = job_state self.run_time = run_time self.job_status = job_status self.parent_id = parent_id self.end_time = end_time self.desc = desc ''' job_state
class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) password_hash = db.Column(db.String(120)) first_name = db.Column(db.String(64), index=True) last_name = db.Column(db.String(64), index=True) def __init__(self, **kwargs): super(User, self).__init__(**kwargs) def assign_group(self, group_name='Basic'): group_id = db.session.query(Group).filter( Group.group_name == group_name).first().id user_group_rel = UserGroups(user_id=self.id, group_id=group_id) db.session.add(user_group_rel) db.session.commit() def get_roles(self): # Returns list of roles db_results = db.session.query( UserGroups, Group).join(Group).filter(UserGroups.user_id == self.id).all() group_names = [x.Group.group_name for x in db_results] logging.debug(f'User {self.username} has roles: {group_names}') return group_names def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) @property def full_name(self): return f'{self.last_name}, {self.first_name}'
class Prev_order_products(db.Model): id = db.Column(db.Integer, primary_key=True) product_id = db.Column(db.String(50), nullable=False) quantity = db.Column(db.Integer, nullable=False) total_price = db.Column(db.Integer, nullable=False) order = db.Column(db.String(50), db.ForeignKey('prev_order.order_id'), nullable=False)
class Contacts(db.Model): id = db.Column(db.Integer, primary_key=True) ad = db.Column(db.String(100), nullable=False) soyad = db.Column(db.String(100), nullable=False) nomre = db.Column(db.String(100), nullable=False) mesaj = db.Column(db.String, nullable=False) mail = db.Column(db.String(100), nullable=False)
class Channels(db.Model): id = db.Column(db.Integer, primary_key=True) channel_id = db.Column(db.String(50), nullable=False, unique=True) title = db.Column(db.String(200)) description = db.Column(db.String(1000), nullable=True) homeUrl = db.Column(db.String(200)) publishedAt = db.Column(db.DateTime()) thumbnails_path = db.Column(db.String(100)) subscriberCount = db.Column(db.Integer, nullable=True) videoCount = db.Column(db.Integer, nullable=True) commentCount = db.Column(db.Integer, nullable=True) viewCount = db.Column(db.Integer, nullable=True) def __init__(self, channel_id, title, description, homeUrl, publishedAt, thumbnails_path, subscriberCount, videoCount, commentCount, viewCount): self.channel_id = channel_id self.title = title self.description = description self.homeUrl = homeUrl self.publishedAt = publishedAt self.thumbnails_path = thumbnails_path self.subscriberCount = subscriberCount self.videoCount = videoCount self.commentCount = commentCount self.viewCount = viewCount def __repr__(self): return '<Subscription %r>' % self.title
class Subject(db.Model): __tablename__ = 'subjects' id = db.Column(db.Integer, primary_key=True, autoincrement=True) name = db.Column(db.String(75), nullable=False) short_name = db.Column(db.String(10), nullable=False) teacher_id = db.Column(db.Integer, db.ForeignKey('teachers.person_id'), nullable=False) lessons = db.relationship('Lesson', backref='subject', uselist=True) def save(self): db.session.add(self) db.session.commit() @staticmethod def get_all(): return Subject.query.all() @staticmethod def get(id=None, name=None): if id is not None: return Subject.query.filter_by(id=id).first() if name is not None: subjects = Subject.query.all() name = name.lower() return [s for s in subjects if name.lower() in s.name.lower()]
class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) ticker_per_page = db.Column(db.Integer, default=3) activated = db.Column(db.Boolean, default=False) tasks = db.relationship('Task', backref='user', lazy='dynamic') subscriptions = db.relationship('TickerSubscription', backref='user', lazy='dynamic') # followed = db.relationship( # 'User', secondary=followers, # primaryjoin=(followers.c.follower_id == id), # secondaryjoin=(followers.c.followed_id == id), # backref=db.backref('followers', lazy='dynamic'), lazy='dynamic') def set_password(self, password): self.password_hash = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password_hash, password) def __repr__(self): return '<User {}>'.format(self.username)
class Productratings(db.Model): id = db.Column(db.Integer, primary_key=True) customer_id = db.Column(db.String(50), unique=True, nullable=False) rating = db.Column(db.Integer, nullable=False) product_details = db.Column(db.String(50), db.ForeignKey('products.product_id'), nullable=False)
class WebResult(db.Model): __tablename__ = 'web_result' id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 主键ID task_id = db.Column(db.Integer, nullable=False) # 任务ID site_id = db.Column(db.Integer, nullable=False) # 站点ID url = db.Column(db.String(128), nullable=False) # URL level = db.Column(db.String(12), nullable=False) # 风险等级,C:紧急,H:高危,M:中危,L:低风险,I:信息 detail = db.Column(db.Text, nullable=False) # 漏洞描述 output = db.Column(db.String(512), nullable=False) # 输出信息 vul_id = db.Column(db.Integer, nullable=False) # Web漏洞ID asset_task_id = db.Column(db.Integer, nullable=False) # 资产管理扫描任务ID def __init__(self, task_id=0, site_id=0, url='', level='', detail='', output='', vul_id=0, asset_task_id=0): self.task_id = task_id # 任务ID self.site_id = site_id # 站点ID self.url = url # URL self.level = level # 风险等级,C:紧急,H:高危,M:中危,L:低风险,I:信息 self.detail = detail # 漏洞描述 self.output = output # 输出信息 self.vul_id = vul_id # Web漏洞ID self.asset_task_id = asset_task_id # 资产管理扫描任务ID def to_dict(self): return {c.name: getattr(self, c.name, None) for c in self.__table__.columns}
class Vendor_rating(db.Model): id = db.Column(db.Integer, primary_key=True) customer_id = db.Column(db.String(50), unique=True, nullable=False) rating = db.Column(db.Integer, nullable=False) vendor_details = db.Column(db.String(50), db.ForeignKey('vendor.vendor_id'), nullable=False)
class User(db.Model): id = db.Column(db.Integer, primary_key=True) login = db.Column(db.String(32), unique=True) #, nullable=False) password = db.Column(db.String(32), unique=False) #, nullable=False) email = db.Column(db.String(128), unique=True) #, nullable=False) date_created = db.Column(db.DateTime, default=db.func.current_timestamp()) verified = db.Column(db.Boolean, default=False) link = db.Column(db.String(32), nullable=True) personalInfo = db.relationship('PersonalInfo', backref='user', uselist=False) def __init__(self, login): self.login = login def save(self, password): """ Функция сохранения нового пользователя в базе данных :param password: Пароль """ self.password = hashlib.sha512( password.encode("utf-8")).hexdigest() db.session.add(self) db.session.commit() def check_pass(self, password): hash = hashlib.sha512(password.encode("utf-8")).hexdigest() return self.password == hash @staticmethod def get(id=None, login=None): if login: return User.query.filter_by(login=login).first() if id: return User.query.get(id) return User.query.all()
class User(db.Model): __tablename__ = 'User' id = db.Column(db.Integer, primary_key=True, autoincrement=True) login = db.Column(db.String(32), unique=True, nullable=False) password = db.Column(db.String(), nullable=False) name = db.Column(db.String(32), nullable=False) def __init__(self, login, name): self.login = login self.name = name # Функция сохранения нового пользователя в базе данных def save(self, password): self.password = hashlib.sha512(password.encode("utf-8")).hexdigest() db.session.add(self) db.session.commit() # Функция проверки пароля к аккаунту def check_pass(self, password): hash = hashlib.sha512(password.encode("utf-8")).hexdigest() return self.password == hash # Функция получения пользователя @staticmethod def get(id=None, login=None): if login: return User.query.filter_by(login=login).first() if id: return User.query.get(id) return User.query.all()
class ConfigModel(db.Model): __tablename__ = "ds_config" id = db.Column(db.Integer, primary_key=True) key = db.Column(db.String(64)) value = db.Column(db.Text) description = db.Column(db.String(128))
class Articles(db.Model): __tablename__ = 'articles' id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(255), nullable=False) body = db.Column(db.Text(), nullable=False) summary = db.Column(db.String(150),nullable=False) img_url = db.Column(db.String(255),nullable=False) insert_date = db.Column(db.DateTime, nullable=False) insert_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) update_date = db.Column(db.DateTime, nullable=True) update_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=True) delete_flg = db .Column(db.Boolean, nullable=False, default=False) version = db.Column(db.Integer, nullable=True) __mapper_args__ = {'version_id_col': version} def __init__(self,title,body,summary,img_url,insert_date,insert_id,version=0,update_date=None,update_id=None): self.title = title self.body = body self.summary = summary self.img_url = img_url self.insert_date = insert_date self.insert_id = insert_id self.version = version self.update_date = update_date self.update_id = update_id
class SpiderUrlOther(db.Model): __tablename__ = "spider_url_other" id = db.Column(db.Integer, primary_key=True, autoincrement=True) # 自增id task_id = db.Column(db.Integer, nullable=False, default=0) # 扫描任务id site_id = db.Column(db.Integer, nullable=False, default=0) #扫描网站id url = db.Column(db.String(512), nullable=False) # 请求url params = db.Column(db.TEXT, nullable=False) # 请求参数 method = db.Column(db.String(5), nullable=False) # 请求方法 refer = db.Column(db.String(512), nullable=False) # 来源路径 应该允许为空 pattern_path = db.Column(db.String(256), nullable=True) # 路径模式 pattern_params = db.Column(db.String(256), nullable=True) # 参数模式 asset_task_id = db.Column(db.Integer, nullable=False, default=0) type = db.Column(db.SmallInteger, nullable=True) # 0死链,1外链,2其他异常 def __init__(self, task_id, url, params='', method='get', refer='', site_id=0, pattern_path=None, pattern_params=None, asset_task_id=None, type=1): self.task_id = task_id self.site_id = site_id self.url = url self.params = params self.method = method self.refer = refer self.pattern_path = pattern_path self.pattern_params = pattern_params self.asset_task_id = asset_task_id self.type = type
class Cart(db.Model): id = db.Column(db.Integer, primary_key=True) product_id = db.Column(db.String(50), nullable=False) quantity = db.Column(db.Integer, nullable=False) customer_details = db.Column(db.String(50), db.ForeignKey('customer.customer_id'), nullable=False)
class ColumnMetadata(db.Model): id = db.Column(db.Integer, primary_key=True) dataset_name = db.Column(db.String(), index=True) table_name = db.Column(db.String(), index=True) column_source_name = db.Column(db.String(), index=True) column_custom_name = db.Column(db.String()) is_many = db.Column(db.Boolean()) visible = db.Column(db.Boolean(), default=True)
class TaskWebScheme(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) scheme_name = db.Column(db.String(50), nullable=False) scheme_desc = db.Column(db.String(250), nullable=True) def __init__(self, scheme_name, scheme_desc=None): self.scheme_name = scheme_name self.scheme_desc = scheme_desc
class Director(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(64), index=True, unique=True) extras = db.Column(db.String(128)) movies = db.relationship('Movie', backref='writer', lazy='dynamic') def __repr__(self): return '<Director {}>'.format(self.name)
class User(db.Model, UserMixin): __searchable__ = ['username'] id = db.Column(db.Integer, primary_key=True) joined_day = db.Column(db.DateTime, default=datetime.utcnow) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False)
class User(db.Model, UserMixin): __tablename__ = 'users' id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(200), nullable=False) password = db.Column(db.String(200), nullable=False) def __repr__(self): return self.name
class Setting(db.Model): """ represents persistent settings for the application """ __tablename__ = 'Settings' __table_args__ = {'extend_existing': True} id = db.Column(db.Integer, primary_key=True) user_id = Column(Integer, ForeignKey('Users.id')) key = db.Column(db.String(), nullable=False) value = db.Column(db.String(), nullable=False)