sqlalchemy 的 ORM 与 Core 混合方式使用示例

知乎: sqlalchemy 的 ORM 与 Core 混合方式操作数据库是一种怎样的体验?

答: 酸!

本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13

基本步骤如下:

1. 绑定数据库

from sqlalchemy import create_engine

engine = create_engine(‘sqlite:///:memory:‘,echo = True)

2. 建立会话

from sqlalchemy.orm import Session
session = Session(engine)

3. 元数据

from sqlalchemy import MetaData

metadata = MetaData(engine)

4. 定义表

from sqlalchemy import Table, Column, Integer, String, ForeignKey

users_table = Table(‘users‘, metadata,
  Column(‘id‘, Integer, primary_key = True),
  Column(‘name‘, String),
  Column(‘fullname‘, String),
  Column(‘password‘, String)
)

5. 创建表

# metadata.create_all() # 方式一
users_table.create() # 方式二

6. 定义类

class User(object):
    def __init__(self,name,fullname,password):
        self.name = name
        self.fullname = fullname
        self.password = password

    def __repr__(self):
        return "<User(‘%s‘,‘%s‘,‘%s‘)>" % (self.name, self.fullname, self.password)

7. 映射类、表

from sqlalchemy.orm import mapper

mapper(User, users_table)

8. 然后,就可以使用会话对数据库进行操作

session.add(User(‘ed‘,‘Ed Jones‘,‘edspassword‘))
session.commit()

9. 完整代码

# 绑定数据库
from sqlalchemy import create_engine
engine = create_engine(‘sqlite:///:memory:‘,echo = True)

# 建立会话
from sqlalchemy.orm import Session
session = Session(engine)

# 元数据
from sqlalchemy import MetaData
metadata = MetaData(engine)

# 定义表
from sqlalchemy import Table, Column, Integer, String, ForeignKey
users_table = Table(‘users‘, metadata,
  Column(‘id‘, Integer, primary_key = True),
  Column(‘name‘, String),
  Column(‘fullname‘, String),
  Column(‘password‘, String)
)

# 创建表
# metadata.create_all() # 方式一
users_table.create() # 方式二

# 定义类
class User(object):
    def __init__(self,name,fullname,password):
        self.name = name
        self.fullname = fullname
        self.password = password

    def __repr__(self):
        return "<User(‘%s‘,‘%s‘,‘%s‘)>" % (self.name, self.fullname, self.password)

# 映射类、表
from sqlalchemy.orm import mapper
mapper(User, users_table)

# 然后,就可以使用会话对数据库进行操作
session.add(User(‘ed‘,‘Ed Jones‘,‘edspassword‘))
session.commit()
时间: 2024-09-30 11:20:24

sqlalchemy 的 ORM 与 Core 混合方式使用示例的相关文章

sqlalchemy 的 ORM 方式使用示例

知乎: 使用 sqlalchemy 的 orm 方式操作数据库是一种怎样的体验? 答: 爽! 本文基于:win10 + python3.4 + sqlAlchemy 1.0.13 下面展示其操作步骤: 1. 声明基类 from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() 2. 定义表 from sqlalchemy import Column, Integer, ForeignKey f

各类最新Asp .Net Core 项目和示例源码

1.网站地址:http://www.freeboygirl.com2.网站Asp .Net Core 资料http://www.freeboygirl.com/blog/tag/asp%20net%20core3.各类最新Asp .Net Core 项目和示例源码? github.com/freeboygirl 4.微信公众号:AspNetCore 5.直接在微信公众号发消息即可.

GDB调试core dump文件示例

上篇论述了三层的基本概念,作用,关系,现在展示下系统中用户登陆过程中简单应用三层结构设计思想. vb.NET的操作如下 首先建立以下windows应用程序以及类库 首先建立实体类 Public Class userInfo Private _username As String Public Property UserName As String Get Return _username End Get Set(ByVal value As String) _username = value E

ORM和Core

.net  core中有哪些被抛弃的类 1.DataTable DataRow SqlDataAdapter DataRow DataColumn DataColumn 虽然这些类不是我ORM核心功能,但是为了保证非Core版本的ORM和Core的语法要一致方便以后升级 于是我就有了一个想法将他们复活,打造一个小巧的DataTable,让更多的老程可以方便的移植到Core. /// <summary> /// 作者:sunkaixuan /// 创建时间:2016/7/31 /// 修改时间:

sqlalchemy 的 Core 方式使用示例

知乎: sqlalchemy 的 Core 方式操作数据是一种怎样的体验? 答: 爽! 本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13 基本步骤如下: 1. 绑定数据库 from sqlalchemy import create_engine engine = create_engine('sqlite:///:memory:', echo=True) 2. 连接数据库 conn = engine.connect() 3. 元数据 from sqlalc

使用 sqlautocode 自动生成 SQLAlchemy 的 ORM 设置脚本

日常工作中,我喜欢使用 MySQL Workbench 的数据模型工具跟踪和管理数据库的变更以及生成管理所需的文档.然而每当数据库的结构稍作变更,也需要同时修改使用SQLAlchemy 编写的 ORM 设置脚本.使用 SqlSoup 固然可以在不配置 ORM 的情况下使用 SQLAlchemy 的主要功能,但是是否能够根据现有的数据库自动生成脚本呢?上网搜索了一下,找到了这个名为 sqlautocode 的实用工具.只需在命令行中执行 sqlautocode 命令即可根据参数自动生成代码! 其调

理解sqlalchemy与ORM

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果. 使用 ORM/Schema Type/SQL Expression Language/Engine/ConnectionPooling/Dialect 所有组件对数据进行操作.根据类创建对象,对象转换成SQL,执行SQL. 1 __author__ = 'lizheng' 2 # !/usr/bi

使用sqlalchemy的ORM创建外键关联时报错

在学习使用sqlalchemy模块的时候踩了一个坑,分享一下. 埋下隐患 我先用下面的语句创建了一张学生信息表: > CREATE TABLE student ( -> id INT UNSIGNED AUTO_INCREMENT, -> name VARCHAR(20) NOT NULL, -> age TINYINT, -> PRIMARY KEY (id) -> ); 表里就3个字段:自增id(无符号的数字,自增id不会是负数,当然用无符号,感觉自己好专业),na

sqlalchemy(二)简单的连接示例

# -*- coding: utf-8 -*- import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String from sqlalchemy.orm import sessionmaker engine = create_engine('mysq