コード例 #1
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class Grade(db.Model):

    g_id = db.Column(db.INTEGER, primary_key=True, autoincrement=True)
    g_name = db.Column(db.String(10), unique=True)
    g_desc = db.Column(db.String(100), nullable=True)
    g_time = db.Column(db.Date, default=datetime.now())
    # 外键关联2,只能是Student,类名
    students = db.relationship('Student', backref='stu', lazy=True)
    # lazy 懒加载,调用它,才查询他,否则部查询
    __tablename__ = 'd4grade'

    def __init__(self, name, desc):
        self.g_name = name
        self.g_desc = desc
コード例 #2
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class Facility(BaseModel, db.Model):
    """设施信息,房间规格等信息"""

    __tablename__ = 'ihome_facility'

    id = db.Column(db.Integer, primary_key=True)  # 设施编号
    name = db.Column(db.String(32), nullable=False)  # 设施名字
    css = db.Column(db.String(30), nullable=True)  # 设施展示的图标

    def to_dict(self):
        return {'id': self.id, 'name': self.name, 'css': self.css}

    def to_house_dict(self):
        return {'id': self.id}
コード例 #3
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class Course(db.Model):
    c_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    c_name = db.Column(db.String(10), unique=True)
    students = db.relationship('Student', secondary=sc, backref='cou')

    # __tablename__ = 'course'
    def __init__(self, name):
        self.c_name = name
コード例 #4
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class Area(BaseModel, db.Model):
    """城区"""

    __tablename__ = 'ihome_area'

    id = db.Column(db.Integer, primary_key=True)  # 区域编号
    name = db.Column(db.String(32), nullable=False)  # 区域名字
    house = db.relationship("House", backref='area')  # 区域的房屋

    def to_dict(self):
        return {'id': self.id, 'name': self.name}
コード例 #5
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class HouseImage(BaseModel, db.Model):
    """房屋图片"""

    __tablename__ = 'ihome_house_image'

    id = db.Column(db.Integer, primary_key=True)
    # 房屋编号
    house_id = db.Column(db.Integer,
                         db.ForeignKey("ihome_house.id"),
                         nullable=False)
    url = db.Column(db.String(256), nullable=False)  # 图片的路径
コード例 #6
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class Student(db.Model):
    s_id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    s_name = db.Column(db.String(20), unique=True)
    s_age = db.Column(db.Integer, default=18)
    # 连接外键1,一定要表名加字段
    s_g = db.Column(db.Integer, db.ForeignKey('d4grade.g_id'), nullable=True)

    __tablename__ = 'd4student'

    def __init__(self, name, age):
        """
        初始化方法,给一个函数,方便给表内容赋值
        :param name:
        :param age:
        """
        self.s_name = name
        self.s_age = age
コード例 #7
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class User(BaseModel, db.Model):

    __tablename__ = 'ihome_user'
    id = db.Column(db.Integer, primary_key=True)
    phone = db.Column(db.String(11), unique=True)
    pwd_hash = db.Column(db.String(200))  # redis里
    name = db.Column(db.String(30), unique=True)
    avatar = db.Column(db.String(100))  # 头像
    id_name = db.Column(db.String(30))  # 实名认证的姓名
    id_card = db.Column(db.String(18), unique=True)  #  实名认证的身份证号

    houses = db.relationship('House', backref='user')
    orders = db.relationship('Order', backref='user')

    # 把属性定义为方法,可以随时更改属性值
    # 读
    @property
    def password(self):
        return self.password

    # 写,对密码进行加密操作
    @password.setter
    def password(self, pwd):
        self.pwd_hash = generate_password_hash(pwd)

    # 对比,验证密码是否相等
    def check_pwd(self, pwd):
        return check_password_hash(self.pwd_hash, pwd)

    # 将当前对象序列化,转换为json格式   id-->  {'id': id}
    def to_basic_dict(self):

        return {
            'id': self.id,
            'avatar': self.avatar if self.avatar else '',
            'name': self.name,
            'phone': self.phone
        }
コード例 #8
0
ファイル: models.py プロジェクト: zhangli709/flask-note
class House(BaseModel, db.Model):
    """房屋信息"""

    __tablename__ = 'ihome_house'

    id = db.Column(db.Integer, primary_key=True)  # 房屋编号
    # 房屋主任的用户编号
    user_id = db.Column(db.Integer,
                        db.ForeignKey("ihome_user.id"),
                        nullable=False)
    # 归属地的区域编号
    area_id = db.Column(db.Integer,
                        db.ForeignKey("ihome_area.id"),
                        nullable=False)
    title = db.Column(db.String(64), nullable=False)  # 标题
    price = db.Column(db.Integer, default=0)  # 单价,单位:分
    address = db.Column(db.String(512), default="")  # 地址
    room_count = db.Column(db.Integer, default=1)  # 房间数
    acreage = db.Column(db.Integer, default=0)  # 房屋面积
    unit = db.Column(db.String(32), default="")  # 房屋单元, 几室几厅
    capacity = db.Column(db.Integer, default=1)  # 房屋容纳的人数
    beds = db.Column(db.String(64), default="")  # 房屋床铺的配置
    deposit = db.Column(db.Integer, default=10)  # 房屋押金
    min_days = db.Column(db.Integer, default=1)  # 最少入住天数
    max_days = db.Column(db.Integer, default=0)  # 最多入住天数,0表示不限制
    order_count = db.Column(db.Integer, default=0)  # 预定完成的该房屋的订单数
    index_image_url = db.Column(db.String(256), default="")  # 房屋主图片的路径

    # 房屋的设施
    facilities = db.relationship("Facility", secondary=ihome_house_facility)
    images = db.relationship("HouseImage")  # 房屋的图片
    orders = db.relationship("Order", backref='house')

    def to_dict(self):
        return {
            'id': self.id,
            'title': self.title,
            'image': self.index_image_url if self.index_image_url else '',
            'area': self.area.name,
            'price': self.price,
            'create_time': self.create_time.strftime('%Y-%m-%d %H:%M:%S'),
            # 'avatar': current_app.config['QINIU_URL']+self.user.avatar if self.user.a
            'room': self.room_count,
            'order_count': self.order_count,
            'address': self.address
        }

    def to_full_dict(self):
        return {
            'id': self.id,
            'user_avatar': self.user.avatar if self.user.avatar else '',
            'user_name': self.user.name,
            'title': self.title,
            'price': self.price,
            'address': self.area.name + self.address,
            'room_count': self.room_count,
            'acreage': self.acreage,
            'unit': self.unit,
            'capacity': self.capacity,
            'beds': self.beds,
            'deposit': self.deposit,
            'min_days': self.min_days,
            'max_days': self.max_days,
            'order_count': self.order_count,
            'images': [image.url for image in self.images],
            'facilities': [facility.to_dict() for facility in self.facilities],
        }