flaskorm介绍与项目实战学习_第1页
flaskorm介绍与项目实战学习_第2页
flaskorm介绍与项目实战学习_第3页
flaskorm介绍与项目实战学习_第4页
flaskorm介绍与项目实战学习_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程介绍flask-sqlalchemy介绍及安装设计数据库模型并创建表使用ORM

,修改,删除数据使用ORM查询数据并展示实战:

管理系统模型设计flask-sqlalchemy介绍flask-sqlalchemy介绍及安装安装PIP安装:pip

install

Flask-SQLAlchemy源码安装:python

setup.py

install文档SQLAlchemyFlask-SQLAlchemyflask-sqlalchemy配置数据库URISQLALCHEMY_DATABASE_URIURI参数格式Postgres:postgresql://scott:tiger@localhost/mydatabaseMySQL:mysql://scott:tiger@localhost/mydatabaseflask-sqlalchemy配置URI参数格式Oracle:oracle://scott:tiger@:1521/sidname::////absolute/path/to/foo.dbflask-sqlalchemy配置多个数据库支持SQLALCHEMY_BINDS

=

{'db1':'db2':

''mysqldb://localhost/users',:////path/to/appmeta.db'}设计数据库模型并创建表数据库模型设计绑定到Flask对象db

=SQLAlchemy(app)ORM模型创建class

User(db.Model):id

=

db.Column(db.Integer,

primary_key=True)指定表的名称

tablename

=

'mall_product'创建和删除表手动创建数据库创建表>>>

db.create_all(bind=‘db1’)删除表>>>

db.drop_all()数据库模型设计ORM模型字段类型支持类型描述Integer/Float整数/浮点类型String

(size)有长度限制的字符串Text一些较长的文本(如:通知详

品详情)DateTime表示为Python

datetime

对象的时间和日期Boolean布尔值PickleType为一个持久化的Python

对象LargeBinary一个任意大的二进制数据数据库模型设计一对多关系,外键关联addresses

=

db.relationship('UserAddress',backref='

',

lazy=True)多对多关联tags

=

db.Table('mall_product_tags',db.Column('tag_id',

db.Integer,

db.ForeignKey('tag.id')),db.Column('product_id',

db.Integer,db.ForeignKey('product.id')))使用ORM,修改,删除数据新增/修改数据构造ORM模型对象user

=

User('admin',

'添加到db.session(备注:可添加多个对象)db.session.add(user)提交到数据库mit()')物理删除数据查询ORM模型对象user=User.query.filter_by(username='zhangsan').

()添加到db.sessiondb.session.delete(user)提交到数据库mit()使用ORM查询数据并展示ORM查询返回结果集(list)查询所有数据User.query.all()按条件查询User.query.filter_by(username='zhangsan')User.query.filter(User.nicknae.endswith('三')).all()ORM查询返回结果集(list)排序User.query.order_by(User.username)查询TOP10User.query.limit(10).all()ORM查询返回单个ORM对象根据pk查询User.query.get(1)获取第一条记录User.query.

()ORM查询视图快捷函数:

有则返回,无则返回404()

vs

_or_404()get()

vs

get_or_404()多表关联查询db.session.query(User).join(Address)User.query.join(Address)分页方式一:使用offset和limit.offset(offset).limit(limit)方式二:paginate分页支持.paginate(page=2,

per_page=4)返回Pagination的对象Pagination对象has_prev/has_next——是否有上一页/下一页items——当前页的数据列表prev_num/next_num——上一页/下一页的页码total——

录数pages——总页数结合模板实现分页第一步:准备数据list_user

=

User.query.filter_by(is_valid=1)第二步:分页list_user.paginate(page=2,

per_page=4)第三步:在模板

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论