CRUD

  需要的所有操作和检视数据的基础功能

可以把session看作保存对数据库的改动的地方。

user=User(usernmae='fake_name')

db.session.add(user)

db.session.commit()

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

users=User.query.all()

users

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

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

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=

 

posted @ 2018-08-20 18:07  duxiao123  阅读(369)  评论(0编辑  收藏  举报