工具:mysql  python sqlalchemy

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

准备工作:

1.安装mysql

如果是window环境请参考 win7安装mysql

如果是linux环境请参考 linux安装mysql

2.安装python

windows: win7安装python2和python3

linux: linux安装python36

注:CentOS自带python2.6.6,如果要安装2.7.9以后的版本同样要通过源码包安装

转载dudu博主的linux安装python2.7.9

3.基于python安装第三方库pymysql和sqlalchemy

pip install pymysql
pip install sqlalchemy pip3 install pymysql
pip3 install sqlalchemy

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

可以开始撸码了~~~~~~

我是基于python36写的,话不多说直接上代码吧

  • 第一步:用mysql创建数据库

  • 第二步:创建数据库连接
# encoding:utf-8
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, INTEGER, String
from sqlalchemy.orm import sessionmaker
HOST_NAME = '127.0.0.1' # 数据库所在服务器ip,因为我是本地数据库所以这里是127.0.0.1
HOST_PORT = '' # 数据库端口
DATABASE_NAME = 'pydb' # 数据库名
USER_NAME = 'root' # 链接数据的用户名
PWD = '' # 链接数据库的密码
# DB_URI是固定的格式,因为我的数据库是mysql,所以按照这个格式写就行了
DB_URI = 'mysql+pymysql://{0}:{1}@{2}:{3}/{4}?charset=utf8'.format(USER_NAME,PWD,HOST_NAME,HOST_PORT,DATABASE_NAME)
# 创建数据库连接
engine = create_engine(DB_URI)
  • 第三步: 创建表
# -------------创建数据库--------------------------------------------------------------------------------
# 操作数据库的基类
Base = declarative_base(engine) class User(Base):
"""定义类其实就是创建一个表
create table user (
id int primary key auto_increment,
user_name varchar(50) not null,
password varchar(20) default '123456'
);
"""
__tablename__ = 'user' # 表名
id = Column(INTEGER,primary_key=True, autoincrement=True) # id字段,主键,自增
user_name = Column(String(50), nullable=False) # 用户名字段
password = Column(String(20), nullable=False, default='') # 密码字段 def __repr__(self):
"""定义数据库查询返回的数据格式"""
return 'User(id="%s",username="%s",password="%s")' % (self.id, self.user_name,self.password) Base.metadata.create_all()

查看数据库,创建成功

  • 第四步: 插入数据
 # ------------插入数据---------------------------------------------------------------------
# 创建会话
Session = sessionmaker(engine)
session = Session()
panda = User(user_name='panda', password='')
# 插入单条数据
session.add(panda)
user_list = []
# 插入多条数据
user_list.append(User(user_name='test1', password=''))
user_list.append(User(user_name='test2', password=''))
user_list.append(User(user_name='test3', password=''))
session.add_all(user_list)
session.commit()

查看数据库已经添加成功

  • 第五步:查询数据
# select top 1 from user;
res_first = session.query(User).first()
print(res_first)
# select *from user;
res_all = session.query(User).all()
print(res_all)
# select *from user where user_name='panda';
res_panda = session.query(User).filter_by(user_name='panda').all()
print(res_panda)
# select *from user where user_name='panda';
res = session.query(User).filter(User.user_name == 'panda').all()
print(res)

运行结果如下,这里返回的格式是以class类的__repr__方法定义的

  • 第六步: 更新数据
# update user set password = '654321' where user_name='panda';
res = session.query(User).filter(User.user_name == 'panda').all()[0]
res.password = ''
session.commit()

查看数据库已经更新成功

  • 第七步: 删除数据
# delete from user where id=3;
res = session.query(User).filter_by(user_name='test3').all()[0]
session.delete(res)
session.commit()

查看数据库已经删除成功

 

python如何用sqlalchemy操作数据库的更多相关文章

  1. Python3.x:SQLAlchemy操作数据库

    Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...

  2. 使用python简单连接并操作数据库

    python中连接并操作数据库 图示操作流程 一.使用的完整流程 # 1. 导入模块 from pymysql import connect # 2. 创建和数据库服务器的连接,自行设置 服务器地址, ...

  3. 04:sqlalchemy操作数据库

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

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

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

  5. python学习笔记:操作数据库

    1.下载安装模块 第一种:cmd下:执行命令下载安装:pip3 install pymysql 第二种:IDE下pycharm python环境路径下添加模块 2.连接数据库 import pymys ...

  6. SQLAlchemy 操作数据库

    首先安装 SQLAlchemy install PyMySQL install sqlalchemy 代码: #!/usr/bin/env python # encoding: utf-8 " ...

  7. python自定义ORM并操作数据库

    看这个代码之前先去看上篇文章,理解type的用法及元类的含义: ORM可以代替pymysql,实现将python语义装换为sql语句,简单化 import pymysql ''' metaclass, ...

  8. python测试开发django-13.操作数据库(增删改查)

    前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...

  9. sqlalchemy操作数据库(二)

    sqlalchemy的基本操作 表结构如下: from sqlalchemy import create_enginefrom sqlalchemy.ext.declarative importdec ...

随机推荐

  1. 二叉堆(2)LeftistHeap

    左倾堆,用于堆的快速合并. 规则: ① 节点的键值小于或等于它的左右子节点的键值. ② 节点的左孩子的NPL >= 右孩子的NPL. ③ 节点的NPL = 它的右孩子的NPL + 1. 测试文件 ...

  2. SpringBoot整合WEB开发--(八)启动任务系统

    简介: 有一些特殊的任务需要在系统启动时执行,例如配置文件的加载,数据库初始化等操作,如果没有使用SpringBoot,这些问题可以在Listener中解决.SpringBoot提供了两种解决方案:C ...

  3. 初识XXE漏洞

    本文是参照本人觉得特别仔细又好懂的一位大佬的文章所做的学习笔记 大佬的链接:https://www.cnblogs.com/zhaijiahui/p/9147595.html#autoid-0-0-0 ...

  4. 多模块打war包

    1.在启动类的那个模块中的pom.xml中加入<packaging>war</packaging>  就这句 <groupId>com.mybatis</gr ...

  5. 我的python笔记06

    面向对象学习 本节内容:   面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法.     引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做< ...

  6. 2020牛客寒假算法基础集训营5 G.街机争霸 (bfs)

    https://ac.nowcoder.com/acm/problem/201961 预处理出僵尸走的路径,僵尸走的周期长度应该为2k-2,在普通的bfs基础上加上一维表示时间,从当前位置x,y和和时 ...

  7. ubuntu系统定时运行 crontab

    1,crontab是个啥? ubuntu系统自带cron工具,cron是一个系统上的定时工具,用它的好处在于,不同的程序可以用同一个计时器,这样就省得不同程序各自sleep了,另外它还支持比较多的个性 ...

  8. Python爬虫连载8-JS加密(一)

    一.JS加密 1.有的反爬虫策略采用js对需要传输的数据进行加密处理. 2.经过加密,传输的就是密文 3.加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者 4.通多阅读加 ...

  9. Codeforces Round #600 (Div. 2) B. Silly Mistake

    #include<iostream> #include<map> #include<set> #include<algorithm> using nam ...

  10. davinci入门必读

    http://www.usr.cc/forum.php/static/image/smiley/tiger/archiver/forum.php?mod=viewthread&action=p ...