flask模型中【外键】relationship的使用笔记
模型中relationship的使用笔记
模型.PY
class User(db.Model):# __tablename__ = 'user1' #定义表名id = db.Column(db.Integer, primary_key=True, autoincrement=True)username = db.Column(db.String(10), nullable=True)password = db.Column(db.String(64), nullable=True)phone = db.Column(db.String(11), nullable=True, unique=True)rdatetime = db.Column(db.DateTime, default=datetime.now)isdelete = db.Column(db.Boolean, default=False)# 代码引用articles = db.relationship('Article', backref='user') # 反向引用comments = db.relationship('Comment', backref='users',secondary ='comment_user') # 反向引用 下方注释详解def __str__(self):return self.username
class Comment(db.Model):__tablename__ = 'comment'id = db.Column(db.Integer, primary_key=True, autoincrement=True)content = db.Column(db.String(255), nullable=False)cdatetime = db.Column(db.DateTime, default=datetime.now())# user_id = db.Column(db.Integer, db.ForeignKey(User.id), nullable=False)article_id = db.Column(db.Integer, db.ForeignKey(Article.id), nullable=False)def __str__(self):return self.content
class Comment_user(db.Model):__tablename__ = 'comment_user'id = db.Column(db.Integer, primary_key=True, autoincrement=True)user_id = db.Column(db.Integer, db.ForeignKey(User.id), nullable=False)comment_id = db.Column(db.Integer, db.ForeignKey(Comment.id), nullable=False)
articles = db.relationship('Article', backref='user') # 反向引用
comments = db.relationship('Comment', backref='users',secondary ='comment_user')
在视图中操作橙色方法1和红色方法2部分时',secondary ='comment_user',
这句话使得关系表中的数据自动添加,两种关系用法:
# user.comments.append(comment)
# comment1.users.append(user1)
# 评论文章
@article_bp.route('/comment', endpoint='comment', methods=['POST'])
def article_comment():
content = request.form.get('content')
user_id = request.form.get('author')
article_id = request.form.get('aid')
# print(content,user_id,article_id)
user = User.query.get(user_id)
comment = Comment()
comment.content = content
comment.article_id = article_id
user.comments.append(comment) #relationship中的关系
db.session.commit()
comment1 = Comment()
comment1.content='aaaaaa'
comment1.article_id = article_id
user1 = User.query.get(3)
comment1.users.append(user1)
db.session.add(comment)
db.session.commit()
url = url_for('article.detail') + '?aid=' + str(article_id)
return redirect(url)
视图.PY
@article_bp.route('/comment', endpoint='comment',methods=['POST'])
def article_comment():'''收: article_id content user_id创建Comment对象 保存数据操作关系表(comment_user): user_id comment_id送: 跳转到详情页'''content= request.form.get('content')user_id = request.form.get('author')article_id = request.form.get('aid')print(content,user_id,article_id)user = User.query.get(user_id)comment = Comment()comment.content = contentcomment.article_id = article_iduser.comments.append(comment) #user.comments相当于是一个列表#当调用comments 时直接等于进入到comment() 然后加入comment实例db.session.commit()url = url_for('article.detail')+'?aid='+str(article_id)return redirect(url)
user.comments.append(comment)
#user.comments相当于是一个列表
#当调用comments 时直接等于进入到comment() 然后加入comment实例
删除:
先找到对象
student.courses.remove(对象) ---》 自动删除关系表的记录
flask模型中【外键】relationship的使用笔记相关推荐
- Flask Web中的db.relationship()
转载链接来自: https://www.jianshu.com/p/dbeec464c3ad 本文主要介绍如何使用flask操作数据库. 数据库按照一定规则保存程序数据,程序再发起查询取回所需的数据. ...
- 关于er模型中的identifying relationship or non-identifying relationship
最近,主要负责项目管理和领域模型设计方面的工作,昨天在将UML类图转换为ER模型的时候,发现有identifying relationship or non-identifying relations ...
- 中去掉外键_【Java笔记】035天,MySQL中的增删改查
学习Java的第35天. 今天天除了学习MySQL中的各种约束,MySQL中DML的操作,还有MySQL查询语句ds-- MySQLdz中d的约束有: • 非空约束(not null) • 唯一性约束 ...
- sqlalchemy外键和relationship查询
前面的文章中讲解了外键的基础知识和操作,上一篇文章讲解了sqlalchemy的基本操作.前面两篇文章都是作为铺垫,为下面的文章打好基础.记得初一时第一次期中考试时考的不好,老爸安慰我说:"学 ...
- mysql支持UUID做外键_多表外键下将普通的id主键更新为uuid主键
多表外键下将普通的id主键更新为uuid主键 2019-05-20 02:45:37 来源: 晴天小雨 0 摘要:在多表外键影响和保证数据不删除的前提下,借助Flask-sqlalchemy插件及SQ ...
- php设置外键约束,关于php:禁用教义外键约束
我在其中一个模型上有关系: /** * @ORM\ManyToOne(targetEntity="Page", cascade="persist") * @OR ...
- think php5关联模型,thinkphp5的模型中使用关联
有以下两个表 artitcle表(表示文章) article的主键是id,外键是cateid,cateid对应于cate表的主键id. cate表(表示栏目) cate表的主键是id. 这两张表表示, ...
- 外键SQL语句的编写及实例
目录 外键SQL语句的编写 1.外键约束作用 2.对于已经存在的字段添加外键约束 3.在创建数据表时设置外键约束 4.删除外键约束 5.小结 实战演练 - 分组和聚合函数的组合使用 1.数据准备 2. ...
- mysql外键更新规则_sql server 外键 更新(删除)规则
以前用数据库,一般都建表关系,但是这些关系建好了往往没有用到. 这次写一个项目,涉及到多表的外键约束和级联删除的问题,才研究了一下. 用的vs2005里面自带的SqlExpress,在VS里面作数据库 ...
最新文章
- 解决cocos2dx 3.x 导入cocostudio的ui界面出现错位问题
- 去除菜单项的加速键--‘’符号
- RxJava使用(四)变换
- 什么样的人不适合做SEO呢
- day15 python-03 列表,元组,字典
- Java Machine Learning Tools Libraries--转载
- AnyChat SDK支持哪些开发语言?
- 【bzoj5037】[Jsoi2014]电信网络 最大权闭合图
- 波特率、发送/接收时钟、波特率因子、传输距离
- GoogleTest测试框架介绍(一)
- Android爬坑之旅之FileProvider(Failed to find configured root that contains)
- 魔乐MLDN李兴华主讲Oracle视频教程
- PostgreSQL 创建数据库
- 栋的月结 | 第三回合(定期更新、动态、架构、云技术、算法、后端、前端、收听/收看、英文、书籍、影视、好歌、新奇)[含泪总结.. 憋泪分享!]
- 按键截屏功能源码流程讲解
- 2018再见|2019你好
- 85D - Sum of Medians
- 计算机能显示u盘吗,U盘插到电脑上,能检测到这设备,但是在“我的电脑”里没有显示U盘...
- CLIP论文阅读、zero-shot实验、linear prob实验记录
- 38、EST序列拼接流程