コード例 #1
0
ファイル: mystock.py プロジェクト: lehuwu/mystock
class MyStock(db.Model):
    __tablename__ = 'my_stocks'

    id = db.Column(db.Integer, primary_key=True)
    code = db.Column(db.String(255))
    name = db.Column(db.String(255))
    market = db.Column(db.String(255))
    user_id = db.Column(db.String(45))
    tag = db.Column(db.String(255))
    flag = db.Column(db.Integer, default=1)
    in_price = db.Column(db.Numeric, default=0)
    in_date = db.Column(db.Date)
    created_time = db.Column(db.DateTime, default=datetime.now)
    updated_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, code, name, market):
        self.code = code
        self.name = name
        self.market = market
        self.tag = ''

    def __repr__(self):
        return '<MyStock %r>' % self.id

    @property
    def ncode(self):
        return self.market + self.code
コード例 #2
0
class InvestWarning(db.Model):
    __tablename__ = 'invest_warning'

    id = db.Column(db.Integer, primary_key=True)
    author = db.Column(db.String(50))
    content = db.Column(db.String(2000))
    created_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, author, content):
        self.author = author
        self.content = content

    def __repr__(self):
        return '<InvestWarning %r>' % self.id
コード例 #3
0
class Role(db.Model):
    """Represents Proected roles."""

    __tablename__ = 'roles'

    id = db.Column(db.String(45), primary_key=True)
    name = db.Column(db.String(255), unique=True)
    description = db.Column(db.String(255))

    def __init__(self):
        self.id = str(uuid4())

    def __repr__(self):
        return "<Model Role `{}`>".format(self.id)
コード例 #4
0
class RelationStock(db.Model):
    __tablename__ = 'relation_stocks'

    id = db.Column(db.Integer, primary_key=True)
    main_stock = db.Column(db.String(255))
    relation_stock = db.Column(db.String(255))
    user_id = db.Column(db.String(45))
    created_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, mcode, scode):
        self.main_stock = mcode
        self.relation_stock = scode

    def __repr__(self):
        return '<RelationStock %r>' % self.id
コード例 #5
0
ファイル: req_error_log.py プロジェクト: lehuwu/mystock
class ReqErrorLog(db.Model):
    __tablename__ = 'req_error_log'

    id = db.Column(db.Integer, primary_key=True)
    action = db.Column(db.String(50))
    key = db.Column(db.String(255))
    msg = db.Column(db.String(2000))
    created_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, action, key, msg):
        self.action = action
        self.key = key
        self.msg = msg

    def __repr__(self):
        return '<ReqErrorLog %r>' % self.id
コード例 #6
0
ファイル: my_holder_favor.py プロジェクト: KrisTSE/mystock
class MyHolderFavor(db.Model):
    __tablename__ = 'my_holder_favor'

    id = db.Column(db.Integer, primary_key=True)
    holder_code = db.Column(db.String(255))
    holder_name = db.Column(db.String(255))
    amt = db.Column(db.Integer, default=1)
    user_id = db.Column(db.String(45))
    created_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, code, name, uid):
        self.holder_code = code
        self.holder_name = name
        self.user_id = uid

    def __repr__(self):
        return '<MyHolderFavor %r>' % self.id
コード例 #7
0
class FinanceBasic(db.Model):
    __tablename__ = 'hexun_finance_basic'

    id = db.Column(db.Integer, primary_key=True)
    code = db.Column(db.String(255))
    report_type = db.Column(db.String(255))
    mgsy = db.Column(db.Numeric)
    mgjzc = db.Column(db.Numeric)
    mgjyxjl = db.Column(db.Numeric)

    yysr = db.Column(db.Numeric)
    kjlr = db.Column(db.Numeric)
    jyjxjl = db.Column(db.Numeric)

    def __init__(self):
        pass

    def __repr__(self):
        return '<FinanceBasic %r>' % self.name
コード例 #8
0
class MyStockFavor(db.Model):
    __tablename__ = 'my_stock_favor'

    id = db.Column(db.Integer, primary_key=True)
    code = db.Column(db.String(255))
    title = db.Column(db.String(255))
    url = db.Column(db.String(255))
    src_type = db.Column(db.String(50))
    pub_date = db.Column(db.Date)
    user_id = db.Column(db.String(45))
    created_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, code, title, url, pub_date, src_type):
        self.code = code
        self.title = title
        self.url = url
        self.pub_date = pub_date
        self.src_type = src_type

    def __repr__(self):
        return '<MyStockFavor %r>' % self.id
コード例 #9
0
class DataItem(db.Model):
    __tablename__ = 'data_item'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    update_time = db.Column(db.DateTime)

    def __init__(self, name, update_time):
        self.name = name
        self.update_time = update_time

    def __repr__(self):
        return '<User %r>' % self.name
コード例 #10
0
ファイル: stock.py プロジェクト: lehuwu/mystock
class Stock(db.Model):
    __tablename__ = 'stock_basic'

    id = db.Column(db.Integer, primary_key=True)
    code = db.Column(db.String(255))
    name = db.Column(db.String(255))
    flag = db.Column(db.String(5))

    industry = db.Column(db.String(255))
    area = db.Column(db.String(255))

    zgb = db.Column(db.Numeric)
    ltgb = db.Column(db.Numeric)
    launch_date = db.Column(db.Date)
    latest_report = db.Column(db.Date)
    holder_updated_time = db.Column(db.DateTime)
    trade_updated_time = db.Column(db.DateTime)
    finance_updated_time = db.Column(db.DateTime)
    desc = db.Column(db.String(500))
    grow_type = db.Column(db.String(3))

    def __init__(self, name, code):
        self.name = name
        self.code = code

    def __repr__(self):
        return '<Stock %r>' % self.id

    @classmethod
    def find_by_code(self, cd):
        return Stock.query.filter_by(code=cd, flag=0).first()

    @property
    def current_price(self):
        try:
            data = self.query_trade_data()
            return round(float(data[3]), 2)
        except:
            return None

    def query_trade_data(self):
        url = "http://hq.sinajs.cn/list=" + self.code
        req = urllib2.Request(url)
        res_data = urllib2.urlopen(req).read()
        match = re.search(r'".*"', res_data).group(0)
        trade_data = match.split(',')
        return trade_data
コード例 #11
0
ファイル: comment.py プロジェクト: lehuwu/mystock
class Comment(db.Model):
    __tablename__ = 'comments'

    id = db.Column(db.String(45), primary_key=True)
    stock = db.Column(db.String(255))
    user_id = db.Column(db.String(45))
    ct_flag = db.Column(db.String(10), default="-1")
    content = db.Column(db.String(255))

    parent_id = db.Column(db.String(45))

    created_time = db.Column(db.DateTime, default=datetime.now)

    def __init__(self, stock, content):
        self.id = str(uuid4())
        self.stock = stock
        self.content = content

    def __repr__(self):
        return '<Comment %r>' % self.id
コード例 #12
0
ファイル: user.py プロジェクト: lehuwu/mystock
class User(db.Model):
    """Represents Proected users."""

    # Set the name for table
    __tablename__ = 'users'

    id = db.Column(db.String(45), primary_key=True)
    username = db.Column(db.String(50))
    password = db.Column(db.String(255))
    last_login_time = db.Column(db.DateTime, default=datetime.now)

    # many to many: user <==> roles
    roles = db.relationship('Role',
                            secondary=users_roles,
                            backref=db.backref('users', lazy='dynamic'))

    def __init__(self, username, password):
        self.id = str(uuid4())
        self.username = username
        self.password = self.set_password(password)

        # Setup the default-role for user.
        default = Role.query.filter_by(name="default").one()
        self.roles.append(default)

    def __repr__(self):
        """Define the string format for instance of User."""
        return "<Model User `{}`>".format(self.id)

    def set_password(self, password):
        """Convert the password to cryptograph via flask-bcrypt"""
        return bcrypt.generate_password_hash(password)

    def check_password(self, password):
        """Check the entry-password whether as same as user.password."""
        return bcrypt.check_password_hash(self.password, password)

    def is_authenticated(self):
        """Check the user whether logged in."""

        # Check the User's instance whether Class AnonymousUserMixin's instance.
        if isinstance(self, AnonymousUserMixin):
            return False
        else:
            return True

    def is_active():
        """Check the user whether pass the activation process."""

        return True

    def is_anonymous(self):
        """Check the user's login status whether is anonymous."""

        if isinstance(self, AnonymousUserMixin):
            return True
        else:
            return False

    def get_id(self):
        """Get the user's uuid from database."""

        return unicode(self.id)

    @staticmethod
    @cache.memoize(60)
    def verify_auth_token(token):
        """Validate the token whether is night."""

        serializer = Serializer(current_app.config['SECRET_KEY'])
        try:
            # serializer object already has tokens in itself and wait for
            # compare with token from HTTP Request /api/posts Method `POST`.
            data = serializer.loads(token)
        except SignatureExpired:
            return None
        except BadSignature:
            return None

        user = User.query.filter_by(id=data['id']).first()
        return user