flask中ORM的使用

目录

1.ORM是什么

2.flask-sqlalchemy介绍及安装:

3.设计数据库模型并创建表 

4.使用ORM插入,修改,删除数据

5.使用ORM查询数据并展示


1.ORM是什么:对象关系的映射

       它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。

那什么是SQL:

SQL是存取数据以及查询、更新和管理关系数据库系统。

2.flask-sqlalchemy介绍及安装:

  安装:     pip install -U Flask-SQLALchemy

  源码安装: python setup.py install

  安装依赖: pip install mysqlclient

3.设计数据库模型并创建表 

(1).flask-sqlalchemy配置:

数据库URI:  SQLALCHEMY_DATABASE_URI

(数据库URI它是统一资源标识符是一个用于标识某一互联网资源名称的字符串)

MySQL数据库URI参数格式:

        mysql://scott:tiger@localhost/mtdatatabase

        mysql:数据库类型

        scott:tiger@localhost:用户名/密码/ip

        mtdatatabase:MySQL数据库名称       

引入:

from  flask-sqlalchemy import  SQLAIchemy

(2).绑定到Flask对象:

db = SQLAIchemy(app)

(3).ORM模型创建:

class User(db.Model):

        id = db.Column(db.Integer, primary_key=True)

        primary_key=True  是主键的意思

(4).指定表的名称:

__tablename__ == 'haha_user'

 (5).手动创建数据库:

创建表:db.create_all(bind='db1')

(6).删除表:

db.drop_all()

 (7).ORM模型字段类型支持

Integer/Float  整数/浮点数
String (size)   有长度限制的字符串
Text   一些较长的文本(如:文章详情/商品详情)
DateTime 表示为python  datetime 对象的 时间和日期
Boolean 存储布尔值
Pckle Type 储存一个持久化的Python对象
LargeBinary 储存一个任意大的二进制数据

 (8).数据库模型设计:

一对多关系,外键关联:

就好比一个客户他有很多个收货地址,客户与地址之间的关系就叫一对多的关系

addresses = db.relationship('UserAddress',backref=address',lazy=True)

user = db.relationship('User', backref=db.backref('address', lazt=True))

他不会在表格里面显示一行,就是为了反向引用方便。

想要关联哪个表的什么数据用db.Foreignkey('表的名称'.数据)

4.使用ORM插入,修改,删除数据

新增/修改数据

1.构造ORM模型对象

user = User('admin',admin@example.com)

2.添加到db.session(备注:可添多个对象)

db.session.add(user)

3.提交到数据库

db.session.commit()

 物理删除数据:

查询ORM模型对象

user = User.query.filter_by(username='zhangsan').first()

添加到db.session

db.session.delete(user)

提交到数据库:

db.session.commit()

5.使用ORM查询数据并展示

返回结果(list)

查询所有的数据:User.query.all()

按条件查询:  User.query_filter_by(username='zahngsan')

                        User.query.filter(User.nickname.endswith('三’).all()

排序: User.query.order_by(User.username)

查询TOP 10  User.query.limit(10).all()

 返回单个ORM对象:

根据pk查询: User.query.get(1) 

获取第一条记录: User.query.first() 

多表关联查询: db.session.query(User).join(Address)

                          User.query.join(Address)

分页:

方式一:使用offset 和 limit

                .offser(offset).limit(limit)

方式二使用paginate分页支持

                .paginate(page=2,per_page=4)  返回Pagination的对象

                查询用户信:User.query

has_prev/has_next是否有上一页/下一页
item当前页的数据列表
prev_num/next_num上一页/下一页的页码
total总记录数
page当前页码
pages总页数 

 分页操作的实际应用:

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring ORM 是 Spring 框架的一个模块,它提供了一种方便的方式来集成 ORM 框架,如 Hibernate、JPA 等,以便于在 Spring 应用使用 ORM 技术。下面是 Spring ORM使用教程: 1. 添加依赖 在 Maven 或 Gradle 添加 Spring ORM 依赖: Maven: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.3.8</version> </dependency> ``` Gradle: ```groovy implementation 'org.springframework:spring-orm:5.3.8' ``` 2. 配置数据源 在 Spring 应用使用 ORM 技术,需要先配置数据源。可以使用 Spring 提供的 DriverManagerDataSource 或者使用连接池技术,如 C3P0。 例如,配置 DriverManagerDataSource: ```xml <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test" /> <property name="username" value="root" /> <property name="password" value="123456" /> </bean> ``` 3. 配置 ORM 框架 Spring ORM 提供了对多种 ORM 框架的集成支持,如 Hibernate、JPA 等。在使用之前,需要先配置相应的 ORM 框架。 例如,配置 Hibernate: ```xml <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan" value="com.example.entity" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> ``` 4. 配置事务管理器 Spring ORM 还提供了事务管理器,通过它可以方便地管理事务。在 Spring 应用使用 ORM 技术,需要先配置事务管理器。 例如,配置 Hibernate 的事务管理器: ```xml <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /> </bean> ``` 5. 配置 DAO 层 DAO 层是 ORM 框架和业务逻辑层之间的桥梁。在 Spring 应用使用 ORM 技术,需要先配置 DAO 层。 例如,配置 Hibernate 的 DAO 层: ```java @Repository public class UserDaoImpl extends HibernateDaoSupport implements UserDao { public User findUserById(int id) { return getHibernateTemplate().get(User.class, id); } public void saveUser(User user) { getHibernateTemplate().save(user); } public void updateUser(User user) { getHibernateTemplate().update(user); } public void deleteUser(User user) { getHibernateTemplate().delete(user); } } ``` 6. 使用 ORM 技术 配置完成后,就可以在业务逻辑层使用 ORM 技术了。 例如,使用 Hibernate: ```java @Service @Transactional public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; public User findUserById(int id) { return userDao.findUserById(id); } public void saveUser(User user) { userDao.saveUser(user); } public void updateUser(User user) { userDao.updateUser(user); } public void deleteUser(User user) { userDao.deleteUser(user); } } ``` 以上就是 Spring ORM使用教程,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱喝可乐的宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值