模型分离(选做)

模型分离--让代码更方便管理

  1.新建models.py,将模型定义全部放到这个独立的文件中。

 

 1 from db import db
 2 
 3 # 用户信息
 4 class User(db.Model):
 5     __tablename__ = 'user'
 6     id = db.Column(db.String(17), primary_key=True)  # 数据库唯识别id
 7     name = db.Column(db.String(20), nullable=False)  # 登录账号名
 8     title = db.Column(db.String(30))  # 显示名称
 9     password = db.Column(db.String(42), nullable=False)  # 密码
10     truename = db.Column(db.String(10))  # 真实姓名
11     sex = db.Column(db.String(1), default='0')  # 性别
12     phone = db.Column(db.String(11))  # 电话号码
13     email = db.Column(db.String(40))  # 邮箱
14     logo = db.Column(db.String(50))  # 头像
15     qq = db.Column(db.String(11))  # qq号码
16     createdate = db.Column(db.DATETIME)  # 注册日期
17     level = db.Column(db.String(2))  # 用户等级
18     address = db.Column(db.String(60))  # 用户住址
19 
20 # 图书分类 classification(id,name,content)
21 class Classification(db.Model):
22     __tablname__ = 'classification'
23     id = db.Column(db.String(17), primary_key=True)  # 数据库唯识别id
24     name = db.Column(db.String(30))  # 文章名称
25     logo = db.Column(db.String(50))  # 头像地址
26     context = db.Column(db.TEXT)  # 分类内容
27 
28 # book(id,title,abstracts,content,createdate,author_id,size,chilk,disc,classification)
29 # 发布图书及问答
30 class Book(db.Model):
31     __tablname__ = 'book'
32     id = db.Column(db.String(17), primary_key=True)  # 数据库唯识别id
33     title = db.Column(db.String(30))  # 文章标题
34     abstracts = db.Column(db.String(150))  # 文章摘要
35     content = db.Column(db.TEXT)  # 文章内容
36     createdate = db.Column(db.DATETIME)  # 发布时间
37     author_id = db.Column(db.String(17), db.ForeignKey('user.id'))  # 发布者id
38     size = db.Column(db.String(30))  # 文章长度
39     chilk = db.Column(db.Integer())  # 阅读数
40     disc = db.Column(db.Integer())   #点赞数
41     classification = db.Column(db.String(17), db.ForeignKey('classification.id'))  # 文章分类id
42     authorClass = db.relationship('User', backref=db.backref('book'))
43     classificationClass = db.relationship('Classification', backref=db.backref('book'))
44 
45 # 评论表
46 class Commentaries(db.Model):
47     __tablname__ = 'commentaries'
48     id = db.Column(db.String(17), primary_key=True)  # 数据库唯一识别id
49     book_id = db.Column(db.String(17), db.ForeignKey('book.id'))  # 评论对应的文章的id
50     question_id = db.Column(db.String(17))  # 问题的提出者id,或者是文章作者id
51     answer_id = db.Column(db.String(17), db.ForeignKey('user.id'))  # 回答问题用户的id
52     date = db.Column(db.DATETIME)  # 回答日期
53     content = db.Column(db.TEXT)  # 回答内容
54     answer = db.relationship('User', backref=db.backref('commentaries'))
55     book = db.relationship('Book', backref=db.backref('commentaries',order_by=date.desc))

 

 

 

  2.新建db.py,将db = SQLAlchemy()的定义放到这个独立的文件中。

 

1 from flask_sqlalchemy import SQLAlchemy
2 db = SQLAlchemy()

 

 

 

  3.models.py和主py文件,都从exts.py中导入db。

 

1 from models import User,Book,Classification,Commentaries
2 from db import db

 

 

 

  4.在主py文件中,对db进行始化,db.init_app(app)

 

1 db.init_app(app)

 

更改后的目录结构:

  

 

转载于:https://www.cnblogs.com/alliancehacker/p/8116408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值