#!/usr/bin/env python # -*- coding: utf_8 -*- import json from application.app import db, ma from .base import PrimaryModel from marshmallow import Schema, fields, INCLUDE, EXCLUDE from webcreator.log import logger class LoginModel(PrimaryModel): __tablename__ = 'evm_login' user = db.Column(db.Integer, nullable = False) login_at = db.Column(db.String(200), nullable = False) user_agent = db.Column(db.String(200), nullable = False) ip = db.Column(db.String(128), nullable = False) geo_location = db.Column(db.String(200), nullable = False) operator = db.Column(db.String(50), nullable = False) # __table_args__ = ( # db.Index('idx_xxx', 'xxx', mysql_using='btree'), # ) def __init__(self, user, login_at, user_agent, ip, geo_location, operator): self.user = user self.login_at = login_at self.user_agent = user_agent self.ip = ip self.geo_location = geo_location self.operator = operator # def __getattr__(self, key): # return self.__dict__[key] # def __getitem__(self, key): # return self.get(key) # def __getattribute__(self, value): # return value def __repr__(self): return '<LoginModel %r>' % (self.user) def to_dict(self): return { 'login_at': self.login_at, 'user_agent': self.user_agent, 'ip': self.ip, 'geo_location': self.geo_location, 'operator': self.operator, } class PostLoginSchema(ma.SQLAlchemySchema): class Meta: # unknown = INCLUDE # 未知字段默认包含 unknown = EXCLUDE # 未知字段默认排除 model = LoginModel account = fields.String(required=True, length=64) password = fields.String(required=True, length=64) postLoginSchema = PostLoginSchema() class GetListLoginSchema(ma.SQLAlchemySchema): class Meta: # unknown = INCLUDE # 未知字段默认包含 unknown = EXCLUDE # 未知字段默认排除 model = LoginModel page = fields.Integer(required=False) pageSize = fields.Integer(required=False) user = fields.Integer(required=False) login_at = fields.String(required=False) user_agent = fields.String(required=False) ip = fields.String(required=False) geo_location = fields.String(required=False) operator = fields.String(required=False) getListLoginSchema = GetListLoginSchema() getListLoginsSchema = GetListLoginSchema(many=True) class GetLoginSchema(ma.SQLAlchemySchema): class Meta: # unknown = INCLUDE # 未知字段默认包含 unknown = EXCLUDE # 未知字段默认排除 model = LoginModel user = fields.Integer(required=False) login_at = fields.String(required=False) user_agent = fields.String(required=False) ip = fields.String(required=False) geo_location = fields.String(required=False) operator = fields.String(required=False) getLoginSchema = GetLoginSchema()