zoukankan      html  css  js  c++  java
  • 运用SQLAlchemy

    1. result = engine.execute(s)
    2. for row in result:
    3. Info["UserId"]=row[0]
    4. Info["UserTitle"] = row[1]
    5. Info["UserCode"] = row[2]
    6. Info["UserType"] = row[3]
    7. result.close()
    返回的result为一个元组,



    echo设置为True,目的是SqlAlchemy将会把执行sql命令的过程输出到标准输出。这主要是便于调试,但如果是用于生产环境中应该设置为False。
        
    客户端连接到数据库postgresql:
    客户端connect >sqlalchemy->psycopg2->DBAPI->postgresql

    engine = create_engine('postgresql+psycopg2://postgres:root@localhost:5432/ttt', echo=True)
    创建引擎:指定     要连接的数据库+数据库接口://帐号:密码@localhost:5432/数据库名称 

    metadata元数据,实例化metadata,绑定到engine上,相当于初始化了表结构

    user = Table('book',metadata,
    Column('id',Integer,primary_key=True),
    Column('name',String(20)),
    )
    用Table来创建表,表的名称,类型,字段定义
    user不是表名,是数据表book对应的类名

    metadata.create_all(checkfirst=True)
    创建数据表,checkfirst=True,数据库相关对象已经存在的化就不会在创建了

    定义列   查询行

    When we use literal(文字的) strings, the Core can’t adapt(适应) our SQL to work on different database backends. 
    也就是不推荐使用原生sql查询


    插入数据
    最方便的插入
    user.insert().execute([{'id':6,'name':'1183532@qq.com'},{'id':5,'name':'118352@qq.com'}])
    user.insert().execute(id=7, name='hello')

    删除指定数据
    coon.execute(user.delete().where(user.c.id == 7))
    清空表中的数据
    coon.execute(user.delete())

    更新数据
    s = user.update().where(user.c.id == 7).values(name='say hello')
    r = coon.execute(s)

    查询数据
    s = select([user.c.name,user.c.id])
    result = coon.execute(s)
    for row in result:
    print row
    s = select([user,])
    result = coon.execute(s)
    for row in result:
    print row




    #coding:utf-8
    from sqlalchemy import create_engine
    from sqlalchemy import MetaData,Column,Sequence,ForeignKey,Integer
    from sqlalchemy import Table,String
    from sqlalchemy.sql import select,text
    engine = create_engine('postgresql+psycopg2://postgres:root@localhost:5432/ttt', echo=True)
    metadata = MetaData()
    metadata.bind = engine
    #数据库表与对象之间的映射关系
    user = Table('book',metadata,
    Column('id',Integer,primary_key=True),
    Column('name',String(20)),
    )
    address = Table('address',metadata,
    Column('id',Integer,primary_key=True),
    Column('user_id',None,ForeignKey('user.id')),
    Column('email',String(60),nullable=False),
    )
    #创建数据表
    metadata.create_all(checkfirst=True)


























































































  • 相关阅读:
    jqgrid 设置单元格编辑/不可编辑
    [坑]c#中double转字符串精度丢失问题记录
    twemproxy接收流程探索——剖析twemproxy代码正编
    twemproxy代码框架概述——剖析twemproxy代码前编
    twemproxy架构分析——剖析twemproxy代码前编
    剖析twemproxy前言
    mysql交互协议解析——mysql包基础数据、mysql包基本格式
    有关binlog的那点事(三)(mysql5.7.13)
    有关binlog的那点事(二)(mysql5.7.13)
    slave IO流程之二:注册slave请求和dump请求
  • 原文地址:https://www.cnblogs.com/wuqingzangyue/p/5770026.html
Copyright © 2011-2022 走看看