zoukankan      html  css  js  c++  java
  • 学习 python ORM 类库 SQLAlchemy 使用

    具体ORM的详细说明可以看 这里http://baike.baidu.com/view/197951.htm

    ORM方法论基于三个核心原则:

    简单:以最基本的形式建模数据。

    传达性:数据库结构被任何人都能理解的语言文档化。

    精确性:基于数据模型创建正确标准化了的结构。

     

    现在来看看SQLAlchemy使用方法

    1、连接数据库create_engine()

       如我连接的是mysql数据库

       

    db_config = {
        'host': 'xxx.xxx.xxx.xx',
        'user': 'root',
        'passwd': 'xxxxxxxx',
        'db':'test',
        'charset':'utf8'
    }
    
    engine = create_engine('mysql://%s:%s@%s/%s?charset=%s'%(db_config['user'],
                                                             db_config['passwd'],
                                                             db_config['host'],
                                                             db_config['db'],
                                                             db_config['charset']), echo=True)

    2、字段和数据类型及操作方法

      在sqlalchemy.schema包里有数据库关系的描述,列举几个最常用的:

       字段:Column

       索引:Index

       表:Table

       数据类型在sqlalchemy.types包,列举几个最常用的:

       二进制:BIGINT

       布尔:BOOLEAN

       字符:CHAR

       可变字符:VARCHAR

       日期:DATETIME

       操作方法在sqlalchemy.sql包里,列举几个最常用的:

       execute,update,insert,select,delete,join等

    3、创建表结构

       例:创建名为users的表,有四个字段:id,name,fullname,password

       String在mysql里其实就是varchar

    metadata = MetaData()
    users_table = Table('users', metadata,
        Column('id', Integer, primary_key=True),
        Column('name', String(50)),
        Column('fullname', String(50)),
        Column('password', String(100))
    )
    metadata.create_all(engine)

    4、创建映射关系

    1 from sqlalchemy.orm import mapper
    2 metadata = MetaData(engine)
    3 users_table = Table('users', metadata, autoload=True)
    4 print users_table.columns

    5、插入并显示数据

    1 insert =  users_table.insert()
    2 insert.execute(name='leon', fullname='leon liang', password='leon123')
    3 mapper(User, users_table)
    4 
    5 ed_user=User('crackpot','Crackpot','password')
    6 print 'username:', ed_user.name
    7 print 'fullname:', ed_user.fullname
    8 print 'password:', ed_user.password
    9 print 'id:', str(ed_user.id)

    到此为止,一个简单的最基础的操作SQLAlchemy 学习结束了,使用ORM,可以让程序员更多的去关注实现逻辑而不用花太多时间去写SQL语句,可能使用项目代码更规范,多个协同开发时更能体现这点好处,而且直接写SQL语句也容易出错,大中型的项目推荐使用ORM。

      

  • 相关阅读:
    读书笔记--Linux Shell脚本攻略
    深入理解javascript原型链
    javascript基本类型及类型转换
    ECMAScript6 Promise
    git初体验
    走进git
    Dom编程优化
    go 递归实现快排
    go语言排序
    实现一个迭代器类
  • 原文地址:https://www.cnblogs.com/bjdxy/p/2785654.html
Copyright © 2011-2022 走看看