------------------------------------2019-08-22 17:53:54更新------------------------------

SQLALchemy实在是难啊,这次写的不好,菜鸡落泪。下次抽空更新的时候,会尽量把SQLALchemy详细更新完。先写写下次更新什么。filter和filter_by的差别,filter的用法,relation关系中cascade级联的操作和lazy的详解,db.Column中的几个参数。SQLALchemy中的偏易和切片,limit,offset,slice,[]。group_by和having。join,排序方法,子查询等xxx我的天啊,数据库太难了吧,(菜鸡忍住不哭)为之前感觉数据库学着简单感到惭愧。。。。

-------------------------------------------------------------------------------------------------

00x1

  SQLALchmey是一个库,运用这个库可以避免SQL语句所造成的低端错误。

在运用SQLALchemy之前要先pip install 安装一下,这样才能够进行导入

  具体运用增删改查

 增:

admin = User(username='admin', password='root',email='admin@example.com')
db.session.add(admin) # 提交一条数据
db.session.commit()
#commit是提交事务

其中User是一个数据表

 删除:

  #1.先将要修改的数据查找出来
admin = User.query.filter(User.username == 'admin').first()
#2.把这条数据删除
db.session.delete(admin)
#3.做事务的提交
db.session.commit()

修改:

#1.先将要修改的数据查找出来
admin = User.query.filter(User.username == 'admin').first()
#2.将这条数据你需要进行修改的地方进行修改
admin.username = 'root'
#3.做事务的提交
db.session.commit()

查询:

#select * from User where User.username='admin'
#1.先将要修改的数据查找出来
admin = User.query.filter(User.username == 'admin').first()
print(admin.username)
print(admin.password)

00x2 几个复杂的逻辑关系:

  一对一,一对多,多对多。这个地方比较恶心,不容易分清,经常用到的就是一对多,多对多的关系,一对一的基本上是没有见到过。

一对多指的是比如一个用户只能是和多个文章在一起。这里面需要额外了解的是主键和外键,主键是一个数据表中必须指明的,没有指明主键的话,在创建数据表的时候会出错。外键是一个连接的作用,通过外键可以从一张数据表查找到另外一张数据表。

数据库中一对一关系:

  

class User(db.Model):

    __tablename__ = 'user'
id = db.Column(db.Integer , nullable=False ,primary_key=True)
username = db.Column(db.String(50))
class Artcile(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer , nullable=False ,primary_key=True)
content = db.Column(db.String(100) , nullable=False)
uid = db.Column(db.Integer ,db.ForeignKey('user.id'))
author = db.relationship("User" , backref = "balala")
# 创建外键,使得两张表之间进行关联

多对多关系:

tags = db.Table('tags',
db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
db.Column('page_id', db.Integer, db.ForeignKey('page.id'))
) class Page(db.Model):
id = db.Column(db.Integer, primary_key=True)
tags = db.relationship('Tag', secondary=tags, backref=db.backref('pages', lazy='dynamic')) class Tag(db.Model):
id = db.Column(db.Integer, primary_key=True)

-------先回家,回家更新-----------------------------------------------------------

最新文章

  1. 分享我们项目中基于EF事务机制的架构
  2. JavaScript中map函数和filter的简单举例(转)
  3. 大学站防SQL注入代码(ASP版)
  4. C#移除HTML标记
  5. 计算几何 2013年山东省赛 A Rescue The Princess
  6. postgresql 死锁处理
  7. javascript触摸事件touch使用
  8. 表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)
  9. awk将普通文本转换成json文件
  10. JDBC、Hibernate、Java类型对照表
  11. JavaSE复习日记 : 抽象类
  12. poj 1743
  13. Linux维护之nginx宕机,端口被占用
  14. MyCat做MySQL负载均衡(享学课堂,咕泡学院听课笔记)
  15. Windows server 2012 R2 部署WSUS补丁服务
  16. 第三讲 smart qq 登录成功后获取 vfwebqq ,psessionid,hash
  17. [综] meanshift算法
  18. Windows Server 2008 R2 服务器系统安装图文教程
  19. fjwc2019 D1T2 原样输出(后缀自动机+dp)
  20. 《HTTP 权威指南》笔记:第三章 HTTP 报文

热门文章

  1. [tmp]__URL
  2. httpserver ---tcp参数设置
  3. linux 内核 同步原理
  4. [UNCTF2020]BetterCpu WriteUp
  5. Ceph的参数mon_osd_down_out_subtree_limit细解
  6. 《Machine Learning in Action》—— Taoye给你讲讲决策树到底是支什么“鬼”
  7. deepin 安装最新版node
  8. PHP+Ajax点击加载更多内容
  9. Shodan搜索引擎详解及Python命令行调用
  10. kafka SASL认证介绍及自定义SASL PLAIN认证功能