【flask】——定义用户模型类,并迁移建表

本文介绍了一个简单的用户信息模型和用户间关系模型的定义方法,包括用户基本信息如ID、手机号、昵称等字段,以及用户间的关系状态如关注、取消关注和拉黑等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工程目录/user/models.py

from app import db
from datetime import datetime


class User(db.Model):
    """
    用户基本信息
    """
    __tablename__ = 'user_basic'

    id = db.Column(db.Integer, primary_key=True, doc='用户ID')
    mobile = db.Column(db.String(11), doc='手机号')
    name = db.Column(db.String(20), doc='昵称')
    last_login = db.Column(db.DateTime, doc='最后登录时间')
    introduction = db.Column(db.String(50), doc='简介')
    article_count = db.Column(db.Integer, default=0, doc='作品数')
    following_count = db.Column(db.Integer, default=0, doc='关注的人数')
    fans_count = db.Column(db.Integer, default=0, doc='粉丝数')
    profile_photo = db.Column(db.String(130), doc='头像')

    def to_dict(self):
        """模型转字典, 用于序列化处理"""

        return {
            'id': self.id,
            'name': self.name,
            'photo': self.profile_photo,
            # 注意:redis不支持None类型 但是支持空字符串
            'intro': self.introduction if self.introduction else "",
            'art_count': self.article_count,
            'follow_count': self.following_count,
            'fans_count': self.fans_count
        }


class Relation(db.Model):
    """
    用户关系表
    """
    __tablename__ = 'user_relation'

    class RELATION:
        # 取消关注
        DELETE = 0
        # 关注
        FOLLOW = 1
        # 拉黑
        BLACKLIST = 2

    id = db.Column(db.Integer, primary_key=True, doc='主键ID')
    user_id = db.Column(db.Integer, doc='用户ID')  # 粉丝id
    author_id = db.Column(db.Integer, doc='目标用户ID')  # 作者id
    relation = db.Column(db.Integer, doc='关系')
    update_time = db.Column(db.DateTime, default=datetime.now, doc='更新时间')

app/__init__.py

from flask_migrate import Migrate
def register_extensions(app:Flask):
	...
    # 4: 执行数据库迁移
    Migrate(app, db)
    # 注意这里需要导包
   	from models.user import User

执行迁移的命令(终端执行):

# 1: 迁移命令
export FLASK_APP = app.main
SET FLASK_APP = app.main(windows环境执行命令)
# 2: 迁移初始化
flask db init
# 3: 生成迁移版本
flask db migrate
# 4:升级迁移版本
flask db upgrade
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值