SQLAlchemy基本使用:from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy import Column,Integer,String
from sqlalchemy.ext.declarative import declarative_base
import pymysql
from sqlalchemy.orm import sessionmaker"""
sqlalchemy的初步使用,用SQLAlchemy执行原生SQL:
"""# 数据库的配置变量HOSTNAME = '127.0.0.1'
PORT     = '3306'
DATABASE = 'db57'
USERNAME = 'root'
PASSWORD = 'Root123456'
DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)# 创建数据库引擎
engine=create_engine(DB_URI,echo=True)# 1. 创建ORM模型:
Base=declarative_base(engine)class User(Base):# 定义表名为users__tablename__='users'# 将id设置为主键,并且默认是自增长的id=Column(Integer,primary_key=True)# name字段,字符类型,最大的长度是50个字符name=Column(String(50))fullname=Column(String(50))password=Column(String(50))# 让打印出来的数据更好看,可选的def __repr__(self):return "<User(id='%s',name='%s',fullname='%s',password='%s')>" % (self.id,self.name,self.fullname,self.password)# 2. 映射到数据库中:执行以下代码将类映射到数据库中:
Base.metadata.create_all()# 2.1到数据库中查看数据库的结构信息,如下
#
# mysql> desc users;
# +----------+-------------+------+-----+---------+----------------+
# | Field    | Type        | Null | Key | Default | Extra          |
# +----------+-------------+------+-----+---------+----------------+
# | id       | int(11)     | NO   | PRI | NULL    | auto_increment |
# | name     | varchar(50) | YES  |     | NULL    |                |
# | fullname | varchar(50) | YES  |     | NULL    |                |
# | password | varchar(50) | YES  |     | NULL    |                |
# +----------+-------------+------+-----+---------+----------------+
# 4 rows in set (0.05 sec)
#
# mysql># with engine.connect() as con:
#     rs=con.execute('SELECT * from t1')
#     for result in rs:
#         print(result)#创建连接
# with engine.connect() as con:
#     # 先删除users表
#     con.execute('drop table if exists authors')
#
#     # 创建一个users表,有自增长的id和name
#     con.execute('create table authors(id int primary key auto_increment,name varchar(25))')
#
#     # 插入两条数据到表中
#     con.execute('insert into authors(name) values("张飞")')
#     con.execute('insert into authors(name) values("关羽")')
#
#     # 执行查询操作
#     results = con.execute('select * from authors')
#     # 从查找的结果中遍历
#     for result in results:
#         print(result)# 3. 添加数据到表中:和数据库打交道的,是一个叫做Session的对象:Session=sessionmaker(bind=engine)session=Session()# 只是把数据添加到session中
tom_user = User(name='tom1',fullname='tom han',password='111111')
jierry_user = User(name='jierry',fullname='jierry han',password='000000')# 数据存储到session中。
session.add(tom_user)
session.add(jierry_user)# 如果需要把数据存储到数据库中,还要做一次commit操作,可以去数据库中查询了。
# 在做commit操作之前,所有的操作都是在事务中进行的,因此如果你要将事务中的操作真正的映射到数据库中,还需要做commit操作
session.commit()# 5. 查找数据:session.query()方法实现的
# 接下来看下如何进行查找操作,查找操作是通过session.query()方法实现的,这个方法会返回一个Query对象,Query对象相当于一个数组,
# 装载了查找出来的数据,并且可以进行迭代。具体里面装的什么数据,就要看向session.query()方法传的什么参数了,如果只是传一个ORM的类名作为参数,
# 那么提取出来的数据就是都是这个类的实例for shili in session.query(User).order_by(User.id):print(shili)# 如果想对结果进行过滤,可以使用filter_by和filter两个方法,这两个方法都是用来做过滤的,区别在于,# filter_by是传入关键字参数,filter是传入条件判断,并且filter能够传入的条件更多更灵活print("查询分割线....")
# 第一种:使用filter_by过滤:
for name in session.query(User).filter_by(fullname='jierry han'):print(name)print("查询分割线....使用filter过滤")# for name in session.query(User.name).filter(User.fullname=='jierry han'):
for name in session.query(User).filter(User.fullname=='jierry han'):print(name)

SQLAlchemy基本使用相关推荐

  1. SQLALchemy之Python连接MySQL

    20220225 https://www.cnblogs.com/toheart/p/9802990.html pymssql连接sqlserver https://blog.csdn.net/qq_ ...

  2. Python的数据库操作(Sqlalchemy)

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  3. 04:sqlalchemy操作数据库 不错

    目录: 1.1 ORM介绍(作用:不用原生SQL语句对数据库操作) 1.2 安装sqlalchemy并创建表 1.3 使用sqlalchemy对表基本操作 1.4 一对多外键关联 1.5 sqlalc ...

  4. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  5. python 之路,Day11 (下)- sqlalchemy ORM

    python 之路,Day11 - sqlalchemy ORM 本节内容 ORM介绍 sqlalchemy安装 sqlalchemy基本使用 多外键关联 多对多关系 表结构设计作业 1. ORM介绍 ...

  6. 自动获取mysql建表语句_脚本工具---自动解析mysql建表语句,生成sqlalchemy表对象声明...

    常规建表语句: CREATE TABLE `test_table` ( `id` int(11) NOT NULL, `name` char(64) NOT NULL, `password` char ...

  7. ORM 框架中SQLALCHEMY一点点个人总结

    声明:工作原因涉及一点 What is ORM 答: object relation mapping 一种实现对象与数据库中的关系表映射的中间件.ORM 框架中最有名的是SQLALCHEMY 具体使用 ...

  8. Python之Mysql及SQLAlchemy操作总结

    一.Mysql命令总结 1.创建库 create database test1; 2.授权一个用户 grant all privileges on *.* to 'feng'@'%' identifi ...

  9. sqlalchemy数据库中的offset偏移查询的使用

    文章目录 1.实验结果: 2.主文件main.py: 1.实验结果: 2.主文件main.py: from flask_wtf import FlaskForm from flask_sqlalche ...

  10. sqlalchemy数据库中的limit使用(限制查询的用户数量)

    文章目录 1.实验结果: 2.主文件:main.py: 1.实验结果: 2.主文件:main.py: from flask_wtf import FlaskForm from flask_sqlalc ...

最新文章

  1. 公共交通伸展城市智慧
  2. (转)Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
  3. python 约束与异常处理
  4. 为何程序C语言不会消亡?程序员学习C会白学吗?
  5. OpenCV初探 —— VS2019配置环境
  6. java接口自动化(四) - 企业级代码管理工具Git的应用
  7. Powershell 查询SQL数据库资料
  8. 数据挖掘和机器学习之间,主要有什么区别和联系?
  9. 中国裁判文书下载:selenium路线
  10. 白嫖华为云后15分钟建站
  11. php计算工资的代码,php计算税后工资的方法_PHP
  12. 图片指纹技术检测图片相似度
  13. @Cacheable使用详解
  14. Springboot之初入江湖
  15. SAP采购订单控制价格是否可以修改增强 LV69AFZZ
  16. 【开发技术】2万字分析shiro、spring security两大安全框架,spring session,OAuth2 入门级教程
  17. 【ACL Findings 2021】Does Robustness Improve Fairness? Approaching Fairness with Word Substitution R
  18. Day16:hash表
  19. 【随堂笔记】数据结构基础
  20. 计算机组装模拟网址,装机模拟器PC Building Simulator-电玩之家

热门文章

  1. [CTSC2008]祭祀
  2. java Android SDK安装与环境变量配置以及开发第一个Android程序
  3. hdu 1217 Arbitrage (最小生成树)
  4. UCHOME ajaxmenU()用法
  5. JQuery获得绝对,相对位置的坐标方法
  6. 从零基础入门Tensorflow2.0 ----八、39.3. gpu3
  7. matlab-lsqcurvefit函数 初始值选取
  8. Unique Functions in MATLAB
  9. windows搭建SVN服务器
  10. win10北通手柄没反应_赛博朋克2077正式发售,光靠键鼠可不行,试试北通阿修罗3...