コード例 #1
0
ファイル: user.py プロジェクト: ariesduanmu/Login-UploadImage
class User(UserMixin, db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, index=True)
    password_hash = db.Column(db.String(128))
    confirmed = db.Column(db.BOOLEAN(), nullable=False, default=False, comment='账户是否已经确认')

    def __init__(self, username):
        self.username = username
        self.confirmed = False

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def generate_reset_token(self, expiration=3600):
        s = Serializer(current_app.config['SECRET_KEY'], expiration)
        return s.dumps({'reset': self.id}).decode('utf-8')

    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

    def generate_confirmation_token(self, expiration=3600):
        s = Serializer(current_app.config['SECRET_KEY'], expiration)
        return s.dumps({'confirm': self.id}).decode('utf-8')

    def confirmed(self, token):
        '''确认账户
        '''
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token.encode('utf-8'))
        except:
            return False
        if data.get('confirm') != self.id:
            return False
            
        self.confirmed = True
        db.session.add(self)
        return True

    @staticmethod
    def verify_auth_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except SignatureExpired:
            return None
        except BadSignature:
            return None

        return User.query.get(data.get('id'))

    def __repr__(self):
        return f'<User {self.username}>'
コード例 #2
0
class Place(db.Model):
    id = db.Column(KEY_TYPE, primary_key=True)
    name = db.Column(db.String(120), nullable=False)
    position = db.Column(Geography('POINT'))
    tags = db.Column(db.Text)

    guides = db.relationship('Guide', backref='place', lazy=True)

    def __repr__(self):
        return '<Place %s: %s>' % (self.id, self.name)
コード例 #3
0
class User(db.Model):
    id = db.Column(KEY_TYPE, primary_key=True)
    email = db.Column(db.String(120), unique=True, nullable=False)
    name = db.Column(db.String(120), nullable=False)

    guides = db.relationship('Guide', backref='user', lazy=True)
    purchased_guides = db.relationship('Guide', secondary=purchased_guides, lazy='subquery',
                             backref=db.backref('users', lazy=True))

    def __repr__(self):
        return '<User %s: %s>' % (self.id, self.email)
コード例 #4
0
class User(db.Model):
    user_id = db.Column(db.Integer, nullable=False, primary_key=True)
    nethz = db.Column(db.String(255), nullable=False)
    password = db.Column(db.String(255), nullable=False)
    salt = db.Column(db.String(255), nullable=False)
    name = db.Column(db.String(255), nullable=False)
    iban = db.Column(db.String(255), nullable=False)
    bic = db.Column(db.String(255), nullable=False)
    role = db.Column(db.String(255), nullable=False)
    amiv_email = db.Column(db.String(255), nullable=False)
    user_privileges = db.Column(INTEGER(6), nullable=False)
    own_budgetitem_id = relationship("BudgetItem", secondary=association_table)
コード例 #5
0
class ImportData(db.Model):
    __tablename__ = 'import_data'
    id = db.Column(db.Integer, primary_key=True)
    info = db.Column(db.String(64), comment="图片信息")
    image_path = db.Column(db.String(64), comment="图片路径")
    user_id = db.Column(db.Integer,
                        db.ForeignKey(User.id, ondelete="CASCADE"),
                        comment="上传的用户的id")

    def __init__(self, info, image_path, user_id):
        self.info = info
        self.image_path = image_path
        self.user_id = user_id

    def __repr__(self):
        return f'<ImportData: (info | {self.info})>'
コード例 #6
0
ファイル: products.py プロジェクト: amiv-eth/qtool-api
class InvoiceArticle(db.Model):
    article_id = db.Column(db.Integer, nullable=False, primary_key=True)
    article_code = db.Column(db.String(255), nullable=False)
    article = db.Column(db.String(255), nullable=False)
    description = db.Column(db.String(255), nullable=False)
    unit = db.Column(db.String(255), nullable=False)
    budgetitem_id = db.Column(db.String(4), nullable=False)
    productgroup = db.Column(db.String(255), nullable=False)
    mwst = db.Column(db.Numeric(precision=5, scale=2),
                     nullable=False,
                     default=0.00)
    unitprice = db.Column(db.Numeric(precision=8, scale=2),
                          nullable=False,
                          default=0.00)
コード例 #7
0
class Guide(db.Model):
    id = db.Column(KEY_TYPE, primary_key=True)
    description = db.Column(db.String(200), nullable=False)
    full_text = db.Column(db.Text)
    price = db.Column(db.Float, nullable=False)
    rating = db.Column(db.Float, nullable=False)
    duration = db.Column(db.Float, nullable=False)
    download_link = db.Column(db.String(200), nullable=False)

    place_id = db.Column(KEY_TYPE, db.ForeignKey('place.id'), nullable=False)
    user_id = db.Column(KEY_TYPE, db.ForeignKey('user.id'), nullable=False)

    def __repr__(self):
        return '<Guide %s>' % self.id
コード例 #8
0
class Summary(db.Model):
    """Definition of DB-Model"""
    id = db.Column(db.Integer, nullable=False, primary_key=True)
    uuid = db.Column(db.String(64), unique=True, nullable=False)
    bot_type = db.Column(db.String(64), nullable=False)
    battery_type = db.Column(db.String(64), nullable=False)
    release = db.Column(db.String(64), nullable=False)
    target = db.Column(db.String(64), nullable=False)
    created = db.Column(db.DateTime,
                        default=datetime.datetime.now,
                        nullable=False)
    summary = db.Column(db.Text, nullable=False)
    accepted = db.Column(db.Boolean, nullable=False, default=False)

    def __repr__(self):
        return '<Summary %r>' % self.uuid
コード例 #9
0
ファイル: transactions.py プロジェクト: amiv-eth/qtool-api
class DetailReceipt(db.Model):
	transaction_id = db.Column(db.Integer,ForeignKey('transaction.id'),nullable=False,  primary_key = True)
	receipt_received = db.Column(db.Boolean, nullable = False)
	ezag_id = db.Column(db.String(31), nullable = False)
	bankstatement_period = db.Column(db.String(31), nullable = False)
	custom_iban = db.Column(db.String(255), nullable = True)
	custom_recipient = db.Column(db.String(255), nullable = True)
コード例 #10
0
class User(db.Model):
    __tablename__ = 'users'
    #用户id
    id = db.Column(db.Integer, primary_key=True)
    #用户名
    username = db.Column(db.String(64), unique=True, index=True)
    #密码(散列值)
    password_hash = db.Column(db.String(128))

    @property
    def password(self):
        raise AttributeError('password is not a readable attribute')

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def verify_password(self, password):
        return check_password_hash(self.password_hash, password)

    #Flask-login需要用到的几个判断
    #是否已登陆
    def is_authenticated(self):
        return True

    #账号是否有效
    def is_active(self):
        return True

    #是否陌生人
    def is_anonymous(self):
        return False

    #返回用户id
    def get_id(self):
        return unicode(self.id)

    def __repr__(self):
        return '<User %r>' % self.username
コード例 #11
0
ファイル: budget.py プロジェクト: amiv-eth/qtool-api
class BudgetItem(db.Model):
    budgetitem_id = db.Column(db.Integer, nullable=False, primary_key=True)
    budgetitem_code = db.Column(db.String(4), nullable=False)
    budgetgroup_id = db.Column(db.Integer,
                               ForeignKey('budget_group.budgetgroup_id'),
                               nullable=False)
    budgetitem_name = db.Column(db.String(255), nullable=False)
    financial_year = db.Column(INTEGER(4), nullable=False)
    expenditure_budgeted = db.Column(db.Numeric(precision=10, scale=2),
                                     nullable=False,
                                     default=0.00)
    revenue_budgeted = db.Column(db.Numeric(precision=10, scale=2),
                                 nullable=False,
                                 default=0.00)
    expenditure_confirmed = db.Column(db.Numeric(precision=10, scale=2),
                                      nullable=False,
                                      default=0.00)
    revenue_confirmed = db.Column(db.Numeric(precision=10, scale=2),
                                  nullable=False,
                                  default=0.00)
コード例 #12
0
ファイル: invoice.py プロジェクト: amiv-eth/qtool-api
class InvoiceItem(db.Model):
    transaction_id = db.Column(db.Integer,
                               ForeignKey('transaction.id'),
                               nullable=False,
                               primary_key=True)
    article_id = db.Column(db.Integer,
                           ForeignKey('invoice_article.article_id'),
                           nullable=False)
    description = db.Column(db.Text, nullable=False)
    unit = db.Column(db.String(7), nullable=False)
    amount = db.Column(db.Integer, nullable=False)
    taxrate = db.Column(db.Numeric(precision=2, scale=2), nullable=False)
    unitprice = db.Column(db.Numeric(precision=10, scale=2), nullable=False)

    invoice_id = db.Column(db.Integer,
                           db.ForeignKey('invoice.invoice_id'),
                           nullable=False)
コード例 #13
0
from sql import db
from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship
from sqlalchemy.dialects.mysql import INTEGER

association_table = db.Table(
    'association_user_budgetitem', db.Model.metadata,
    db.Column('user_id', db.Integer, ForeignKey('user.user_id')),
    db.Column('budgetitem_id', db.Integer,
              ForeignKey('budget_item.budgetitem_id')))


class Customer(db.Model):
    customer_id = db.Column(db.Integer, nullable=False, primary_key=True)
    category = db.Column(db.String(255), nullable=False)
    company = db.Column(db.String(255), nullable=False)
    title = db.Column(db.String(255), nullable=False)
    first_name = db.Column(db.String(255), nullable=False)
    last_name = db.Column(db.String(255), nullable=False)
    address = db.Column(db.String(255), nullable=False)
    plz = db.Column(db.String(255), nullable=False)
    city = db.Column(db.String(255), nullable=False)
    country = db.Column(db.String(255), nullable=False)
    phone = db.Column(db.String(255), nullable=False)
    email = db.Column(db.String(255), nullable=False)
    quotation = db.Column(db.String(255), nullable=False)


class User(db.Model):
    user_id = db.Column(db.Integer, nullable=False, primary_key=True)
    nethz = db.Column(db.String(255), nullable=False)
コード例 #14
0
class TransactionAccount(db.Model):
	account = db.Column(db.Integer, nullable = False, primary_key=True)
	account_name = db.Column(db.String(255), nullable = False)
コード例 #15
0
class TransactionType(db.Model):
	type_id = db.Column(db.Integer, nullable= False, primary_key=True)
	type_class = db.Column(db.String(31), nullable= False)
	type_name = db.Column(db.String(31), nullable= False)
コード例 #16
0
class TransactionCurrency(db.Model):
	currency_id = db.Column(db.Integer, nullable = False, primary_key=True)
	currency_name = db.Column(db.String(255), nullable = False)
	currency_shortcut = db.Column(db.String(3), nullable = False)
コード例 #17
0
class TransactionCategory(db.Model):
	category = db.Column(db.Integer, nullable = False, primary_key=True)
	category_name = db.Column(db.String(255), nullable = False)
コード例 #18
0
ファイル: invoice.py プロジェクト: amiv-eth/qtool-api
class Invoice(db.Model):
    invoice_id = db.Column(db.Integer, nullable=False, primary_key=True)
    invoice_number = db.Column(db.String(7), nullable=False)
    issuer_id = db.Column(db.Integer,
                          ForeignKey('user.user_id'),
                          nullable=False)
    issue_date = db.Column(db.DATE,
                           default=datetime.datetime.now,
                           nullable=False)
    ext_customer_db = db.Column(db.Boolean, nullable=False)
    customer_id = db.Column(db.Integer,
                            ForeignKey('customer.customer_id'),
                            nullable=False)
    duedate = db.Column(db.DATE, default=datetime.datetime.now, nullable=False)
    moneyreceived = db.Column(db.Boolean, nullable=False)
    reminderlevel = db.Column(db.Integer, nullable=False)
    pdf_path = db.Column(db.String(255), nullable=False)
    is_valid = db.Column(db.Boolean, nullable=False)

    items = db.relationship('InvoiceItem', backref='invoice', lazy=True)
コード例 #19
0
ファイル: budget.py プロジェクト: amiv-eth/qtool-api
class BudgetGroup(db.Model):
    budgetgroup_id = db.Column(db.Integer, nullable=False, primary_key=True)
    budgetgroup_name = db.Column(db.String(255), nullable=False)
コード例 #20
0
ファイル: budget.py プロジェクト: amiv-eth/qtool-api
class Settings(db.Model):
    key = db.Column(db.String(63), nullable=False, primary_key=True)
    value = db.Column(db.String(255), nullable=False)
コード例 #21
0
ファイル: products.py プロジェクト: amiv-eth/qtool-api
class MerchArticle(db.Model):
    article_id = db.Column(db.Integer, nullable=False, primary_key=True)
    article = db.Column(db.String(255), nullable=False)
    unitprice = db.Column(db.Numeric(precision=6, scale=2),
                          nullable=False,
                          default=0.00)
コード例 #22
0
ファイル: transactions.py プロジェクト: amiv-eth/qtool-api
class Transaction(db.Model):
	id = db.Column(db.Integer, nullable=False, primary_key=True)
	financial_year = db.Column(INTEGER(4), nullable = False)
	date = db.Column(db.DateTime, default = datetime.datetime.now, nullable= False)
	type_id = db.Column(db.Integer, ForeignKey('transaction_type.type_id'), nullable = False)
	description = db.Column(db.String(255), nullable=False)
	category_id = db.Column(db.Integer, ForeignKey('transaction_category.category'), nullable = True)
	budgetitem_id = db.Column(db.Integer, ForeignKey('budget_item.budgetitem_id'), nullable= True)
	account_id = db.Column(db.Integer, ForeignKey('transaction_account.account'), nullable= True)
	is_valid = db.Column(db.Boolean, nullable= False) 
	amount = db.Column(db.Numeric(precision=10,scale=2), nullable = False, default=0.00)
	currency_id = db.Column(db.Integer, ForeignKey('transaction_currency.currency_id'), nullable= False)
	amount_in_chf = db.Column(db.Numeric(precision=10,scale=2), nullable = True)
	user_id = db.Column(db.Integer, ForeignKey('user.user_id'), nullable= False)
	comment = db.Column(db.String(255), nullable = True)
コード例 #23
0
class Customer(db.Model):
    customer_id = db.Column(db.Integer, nullable=False, primary_key=True)
    category = db.Column(db.String(255), nullable=False)
    company = db.Column(db.String(255), nullable=False)
    title = db.Column(db.String(255), nullable=False)
    first_name = db.Column(db.String(255), nullable=False)
    last_name = db.Column(db.String(255), nullable=False)
    address = db.Column(db.String(255), nullable=False)
    plz = db.Column(db.String(255), nullable=False)
    city = db.Column(db.String(255), nullable=False)
    country = db.Column(db.String(255), nullable=False)
    phone = db.Column(db.String(255), nullable=False)
    email = db.Column(db.String(255), nullable=False)
    quotation = db.Column(db.String(255), nullable=False)
コード例 #24
0
ファイル: Server.py プロジェクト: SpinDOS/Airport
class Passenger(db.Model):
    __tablename__ = "lab_Passengers"
    Id = db.Column(db.String(36), primary_key=True)
    first_name = db.Column(db.String(32))
    last_name = db.Column(db.String(32))
    patronymic = db.Column(db.String(32))
    gender = db.Column(db.String(1))
    birthdate = db.Column(db.Date)
    luggage = db.Column(db.String(36))
    flight = db.Column(db.String(36))
    #state = db.Column(db.String(40)) #db.Enum('Unknown', 'WaitForBus', 'InBus', 'WaitForAirplane', 'InAirplane', 'WaitForLuggage', 'Left')) # InBus => InBusToAirport & InBusToAirplane; WaitForBus => WaitForBusToAirport & WaitForBusToAirplane ?
    state = db.Column(
        db.Enum('InAirplane', 'LandingFromAirplaneToBus', 'InBus',
                'LandingFromBusToGate', 'InGate', 'WaitForLuggage', 'Left',
                'WaitForBus', 'BoardingToBusFromGate',
                'BoardingFromBusToAirplane', 'FlewAway'))
    transport = db.Column(
        db.String(36))  # ID транспорта, в котором находиться пассажир
    direction = db.Column(db.Enum('Arriving', 'Departing'))

    def serialize(self, extended=False):
        if extended:
            return {
                'id': self.Id,
                'first_name': self.first_name,
                'last_name': self.last_name,
                'patronymic': self.patronymic,
                'gender': self.gender,
                'birthdate': self.birthdate,
                'luggage': self.luggage,
                'flight': self.flight,
                'state': self.state,
                'transport': self.transport,
                'direction': self.direction
            }
        else:
            return {
                'id': self.Id,
                'first_name': self.first_name,
                'luggage': self.luggage,
                'flight': self.flight,
                'state': self.state
            }
コード例 #25
0
class Join(db.Model):
    __tablename__ = 'joins'
    #记录编号
    id = db.Column(db.Integer, primary_key=True)
    #姓名
    name = db.Column(db.String(64), unique=True, index=True)
    #电子邮件
    email = db.Column(db.String(64), unique=True)
    #性别
    sex = db.Column(db.String(64))
    #班级
    banji = db.Column(db.String(64))
    #学校
    school = db.Column(db.String(64))
    #硬盘容量
    disk = db.Column(db.String(64))
    #手机号码
    phone = db.Column(db.Integer)
    #荔香用户
    lx_username = db.Column(db.String(64))
    #应聘板块
    block = db.Column(db.String(64))
    #备选应聘
    block_backup = db.Column(db.String(64))
    #资源来源
    source = db.Column(db.String(64))
    #每日在线时间
    uptime = db.Column(db.String(64))
    #照片文件
    photo = db.Column(db.String(64), unique=True)
コード例 #26
0
ファイル: transactions.py プロジェクト: amiv-eth/qtool-api
class DetailMerchandise(db.Model):
	transaction_id = db.Column(db.Integer, ForeignKey('transaction.id') ,nullable=False, primary_key = True)
	price = db.Column(db.Numeric(precision=6,scale=2), nullable = False, default=0.00)
	quantity = db.Column(INTEGER(6), nullable= False)
	article_id = db.Column(db.Integer, ForeignKey('merch_article.article_id'), nullable= False)
コード例 #27
0
from geoalchemy2 import Geography

from sql import db

KEY_TYPE = db.Integer


purchased_guides = db.Table('user_purchased_guides',
    db.Column('user_id', db.Integer, db.ForeignKey('user.id'), primary_key=True),
    db.Column('guide_id', db.Integer, db.ForeignKey('guide.id'), primary_key=True)
)


class User(db.Model):
    id = db.Column(KEY_TYPE, primary_key=True)
    email = db.Column(db.String(120), unique=True, nullable=False)
    name = db.Column(db.String(120), nullable=False)

    guides = db.relationship('Guide', backref='user', lazy=True)
    purchased_guides = db.relationship('Guide', secondary=purchased_guides, lazy='subquery',
                             backref=db.backref('users', lazy=True))

    def __repr__(self):
        return '<User %s: %s>' % (self.id, self.email)


class Place(db.Model):
    id = db.Column(KEY_TYPE, primary_key=True)
    name = db.Column(db.String(120), nullable=False)
    position = db.Column(Geography('POINT'))
    tags = db.Column(db.Text)