【python学习笔记】python使用sqlalchemy连接mysql数据库
来源:互联网 发布:网络推广属于什么岗位 编辑:程序博客网 时间:2024/05/01 08:21
python使用sqlalchemy连接mysql数据库
sqlalchemy是python当中比较出名的orm程序。
什么是orm?
orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们在使用编程语言对数据库进行操作的时候可以直接使用编程语言的对象模型进行操作就可以了,而不用直接使用sql语言。
什么是sqlalchemy?
sqlalchemy是python的orm程序,在整个python界当中相当出名。
安装sqlalchemy
$ pip install sqlalchemy
导入必要的库文件
#!/usr/bin/python# -*- coding: utf-8 -*-from sqlalchemy import Column, String, create_engine, ForeignKeyfrom sqlalchemy.orm import sessionmaker, relationshipfrom sqlalchemy import Columnfrom sqlalchemy.types import CHAR, Integer, Stringfrom sqlalchemy.ext.declarative import declarative_base
创建对象的基类
# 创建对象的基类:Base = declarative_base()
定义各个表的类
# 定义User对象:class User(Base): # 表的名字: __tablename__ = 'user' # 表的结构: id = Column(Integer, primary_key=True) name = Column(String(20)) psw = Column(String(20)) books = relationship('Book') def __init__(self, id, name,psw): self.id = id self.name = name self.psw = psw def __repr__(self): return '<User %r>' % self.nameclass Book(Base): __tablename__ = 'book' id = Column(Integer, primary_key=True) book_name = Column(String(20)) # “多”的一方的book表是通过外键关联到user表的: user_id = Column(String(20), ForeignKey('user.id')) def __init__(self, id, book_name, user_id): self.id = id self.book_name = book_name self.user_id = user_id def __repr__(self): return '<User %r>' % self.name
初始化数据库连接
# 初始化数据库连接:engine = create_engine('mysql+mysqlconnector://root:root@localhost:3306/user')# 创建DBSession类型:DBSession = sessionmaker(bind=engine)
创建session,应用
session = DBSession()# 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行:# user = session.query(User).outerjoin(Book).filter(Book.user_id == '2').one()#连表查询 定义好主键user = session.query(User).join(Book, Book.user_id == User.id).filter(Book.user_id == '2').one()#连表查询 自己指定连接book = session.query(Book).join(User, Book.user_id == User.id).filter(Book.user_id == '2').one()#连表查询 自己指定连接print user.nameprint book.book_name# 关闭Session:session.close()
0 0
- 【python学习笔记】python使用sqlalchemy连接mysql数据库
- Python学习总结笔记(10)-- MySQL数据库操作之SQLAlchemy使用总结
- python Flask-SQLAlchemy 连接数据库
- Python中使用SQLAlchemy连接Mysql数据库2(多表连接操作)
- Python学习笔记-pyMySQL连接MySQL数据库
- Python中使用SQLAlchemy连接Mysql数据库(单表操作)
- Python中使用SQLAlchemy连接Mysql数据库3(事务,编码)
- Python的ORM框架SQLAlchemy使用入门(二)【连接MySql数据库】
- Python的ORM框架SQLAlchemy使用入门(二)【连接MySql数据库】
- 使用Python数据库ORM SQLAlchemy
- python 使用sqlalchemy,mysqldb模块通过ssh隧道连接mysql
- python学习笔记(十四) - python连接mysql数据库
- 1.python学习笔记:python连接mysql数据库
- python 学习笔记 第二篇:python如何连接mysql数据库
- Python数据库ORM SQLAlchemy 0.7学习笔记(1) 概要
- Python数据库ORM SQLAlchemy 0.7学习笔记(2) 定义映射
- Python数据库ORM SQLAlchemy 0.7学习笔记(3) 会话
- Python数据库ORM SQLAlchemy 0.7学习笔记(4) 添加对象
- nginx upstream的五种分配方式
- 变强
- 华为oj之字符串分割
- TreeMap
- 剑指offer--面试题50:树中两个结点的最低公共祖先
- 【python学习笔记】python使用sqlalchemy连接mysql数据库
- UNITY多语言化的工具I2 Localization使用资料分享(一)
- AS3与JAVA socket
- Android ORM框架之GreenDAO(一) 初识
- 原生JS实现的简单“瀑布流”布局
- Ball(AOJ 0033)二进制枚举
- Windows删除长文件名文件
- Mysql 两种情况下更新字段中部分数据的方法
- HDU 4405 Aeroplane chess(概率DP)