知乎: 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()

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

  1. sqlalchemy 的 ORM 方式使用示例

    知乎: 使用 sqlalchemy 的 orm 方式操作数据库是一种怎样的体验? 答: 酸爽! 本文基于:win10 + python3.4 + sqlAlchemy 1.0.13 先看一个图(来源) ...

  2. SQLAlchemy的ORM

    表关系: 表之间的关系存在三种:一对一.一对多.多对多.而SQLAlchemy中的ORM也可以模拟这三种关系.因为一对一其实在SQLAlchemy中底层是通过一对多的方式模拟的,所以先来看下一对多的关 ...

  3. SQLAlchemy(1) -- Python的SQLAlchemy和ORM

    Python的SQLAlchemy和ORM(object-relational mapping:对象关系映射) web编程中有一项常规任务就是创建一个有效的后台数据库.以前,程序员是通过写sql语句, ...

  4. SQLAlchemy(ORM框架)

    SQLAlchemy SQLAlchemy概述 2 3 4 5 6 7 8 9 10 11 12 13 MySQL-Python     mysql+mysqldb://<user>:&l ...

  5. ORM和Core

    .net  core中有哪些被抛弃的类 1.DataTable DataRow SqlDataAdapter DataRow DataColumn DataColumn 虽然这些类不是我ORM核心功能 ...

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

    1.网站地址:http://www.freeboygirl.com2.网站Asp .Net Core 资料http://www.freeboygirl.com/blog/tag/asp%20net%2 ...

  7. sqlalchemy 的 Core 方式使用示例

    知乎: sqlalchemy 的 Core 方式操作数据是一种怎样的体验? 答: 爽! 本文基于:win 10 + python 3.4 + sqlalchemy 1.0.13 基本步骤如下: 1. ...

  8. sqlalchemy(二)简单的连接示例

    # -*- coding: utf-8 -*- import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.d ...

  9. SQLAlchemy高级ORM之改查删除及GROUP,JOIN...

    按书上案例来的. #coding=utf-8 from datetime import datetime from sqlalchemy import (MetaData, Table, Column ...

随机推荐

  1. Mac OS X上安装 Ruby运行环境

    环境   对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 ...

  2. 关于Socket建立长连接遇到的bug信息

    下面是本人在Socket连接的开发中遇到的bug总结 1."远程服务器关闭了Socket长连接'的错误信息 2.关于"kCFStreamNetworkServiceTypeVoIP ...

  3. centos7.0 没有netstat 命令问题

    centos有时安装时,没有安装netstat命令: 直接如下就可搞定: yum install wget 运行  yum install net-tools  就OK了 netstat常用命令: n ...

  4. Java递归实现操作系统文件的复制、粘贴和删除功能

    通过Java IO递归实现操作系统对文件的复制.粘贴和删除功能,剪切=复制+粘贴+删除 代码示例: import java.io.BufferedInputStream; import java.io ...

  5. 读书笔记——Windows环境下32位汇编语言程序设计(13)关于EXCEPTION_DEBUG_INFO结构体

    在动手自己尝试编写书上第13章的例子Patch3时,遇到了一个结构体EXCEPTION_DEBUG_INFO. 这个结构体在MASM的windows.inc中的定义和MSDN中的定义不一样. (我使用 ...

  6. internet connection sharing has been disabled by the network administrator

    Start > Run > gpedit.msc Locate; Computer Configuration/Administrative Templates/Network/Netwo ...

  7. java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...

  8. css常见问题

    CSS: 1.垂直居中布局 (1)已知宽高 (2)未知宽高 https://segmentfault.com/q/1010000004073623 2.文字退格 text-indent: 4em; 3 ...

  9. [转]GridView中直接新增行、编辑和删除

    本文转自:http://www.cnblogs.com/gdjlc/archive/2009/11/10/2086951.html .aspx <div><asp:Button ru ...

  10. python实现插入排序

    代码如下@.·.@ # *-* coding: utf- *-* if __name__ == '__main__': def insert_sort(l): ,len(l)): tmp = l[i] ...