CRUD

  須要的全部操做和檢視數據的基礎功能數據庫

能夠把session看做保存對數據庫的改動的地方。session

user=User(usernmae='fake_name')函數

db.session.add(user)網站

db.session.commit()設計

------------------對象

users=User.query.all()字符串

usersget

-----------------string

users=User.query.limit(10).all()it

users=User.query.order_by(User.username).all()

Users=User.query.order_by(User.username.desc()).all()

-----------

user=User.query.first()

user.username

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

user=User.query.get(1)

user.username

-------

這些函數都是能夠鏈式調用的  也就是說 

-------

users=User.query.order_by(

   User.username.desc()

).limit(10).first()

-----------

MBTI

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

pagination(分頁)

能夠能夠用來替代first()   all()  專門用來設計用來實現分頁功能的  大多數網站都會用 分頁的方式來展現長列表

返回的是pagination對象    而不是數據模型對象的 列表

好比咱們想獲得前10個虛構的  Post對象 

 

Post.query.pagination(1,10)

page=User.query.pagination(1,10)

 

 

返回這一頁包含的數據對象

page.items

返回這一頁的頁數

page.pages

返回總頁數

上一頁和下一頁是否有對象能夠顯示

page.has_prev,page.has_next

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

返回上一頁和下一頁的pagintation對象

若是不存在的話返回當前頁

page.prev()

page.next()

-----------

條件查詢

----------

SQL最擅長的東西 就是根據一些條件的集合 得到過濾後的數據

要獲得  知足一系列條件的數據列表 

query.filter_by過濾器

------

users=Users.query.filter_by(username='fake_name').all()

----------

users=Users.query.order_by(User.username.desc())

       .filter_by(username='fake_name')

  .limit(2)

   .all()

----------

user=User.query.filter(

   User.id>1  

).all()

--------

整數  integers  字符串 strings

日期  dates

  整數integer  浮點float

 日期date

SQL   in   or  not的操做

------

修改數據

使用first()   all()

等方法返回數據以前    調用update方法能夠修改已存在數據的值

User.query.filter_by(username='fake_name').update(

  {'password':'test'

}

)

 

#對數據模型的修改已被自動加入session()中

db.session.commit()

----------

刪除數據

從數據庫中刪除一行數據

 

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

 

 

不要太認真嘛

-----------

user=User.query.filter_by(

username='fake_ame'

).first()

db.session.delete(user)

db.session.commit()

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

數據模型之間的關聯

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

模型之間能夠互相創建引用

每篇文章都有一個特定的做者

經過把每一個做者的文章跟這個做者相關聯

方便地獲取這個做者的全部文章   一對多關係的一個範例-

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

lazy=

相關文章
相關標籤/搜索