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=

相关文章
相关标签/搜索