flask中SQLAlchemy学习

------------------------------------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个人天啊,数据库太难了吧,(菜鸡忍住不哭)为以前感受数据库学着简单感到惭愧。。。。session

-------------------------------------------------------------------------------------------------ui

 00x1spa

  SQLALchmey是一个库,运用这个库能够避免SQL语句所形成的低端错误。code

在运用SQLALchemy以前要先pip install 安装一下,这样才可以进行导入blog

 

 

  具体运用增删改查排序

 增:事务

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

其中User是一个数据表ip

 删除:ci

  #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)

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

相关文章
相关标签/搜索