知乎: 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. MongoDB学习笔记——聚合操作之MapReduce

    MapReduce MongoDB中的MapReduce相当于关系数据库中的group by.使用MapReduce要实现两个函数Map和Reduce函数.Map函数调用emit(key,value) ...

  2. MFC9.0 Outlook控件的标题显示无法修改

    这是我在开发中遇到的问题,现记录下来,以便帮助你们. 不想看废话的可以只看最后三行,但你会错过很多. 俗话说的好啊,"Wise men learn by other men's mistak ...

  3. MongoDB 存储引擎Wiredtiger原理剖析

    今天开始看MongoDB 3.2的文档,发现了这么两句话 Support for Multiple Storage Engines MongoDB supports multiple storage ...

  4. strcat()函数常见问题

    strcat(char *_Destination,const char *_Source)函数的功能是将后一个字符串粘贴到前一个字符串的末尾 原型 char *strcat(char *_Desti ...

  5. html插入图片和多媒体

    图像 插入图像 在html网页中插入图片唯一的标记就是,它的src属性是必需属性 <img src="图片地址"> 属性 说明 src 图像的源文件 alt 提示文字 ...

  6. 在linux下修改mysql的root密码

    第一种方法: root用户登录系统 /usr/local/mysql/bin/mysqladmin -u root -p password 新密码 enter password 旧密码 第二种方法: ...

  7. Hive conf issue

    Hive --hiveconf v1="test" --hiveconf v2 -e "select * from ${hiveconf:v1} where col1=' ...

  8. NOIP2008 T3 传纸条 解题报告——S.B.S.

    题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...

  9. MIT jos 6.828 Fall 2014 训练记录(lab 2)

    注: 源代码参见我的github:https://github.com/YaoZengzeng/jos Part1 : Physical Page Management mem_init函数: /*该 ...

  10. Docker tips

    1.将Docker daemon的监听端口写入配置文件 配置文件: /etc/default/docker (CentOS: /etc/sysconfig/docker) 写入:DOCKER_OPTS ...