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)

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

相關文章
相關標籤/搜索