• 第二篇:操纵MySQL数据库(2)


    前言

           本文讲解在Python语言中使用SQLAlchemy库操纵MySQL数据库的方法。

           由于具体内容涉及较多,本文仅以插入及展示数据为例,更多内容请查阅有关文档。

    ORM

           ORM也即对象 - 关系映射。

           在前文中,操纵的对象针对数据库中的关系表。而ORM机制能让你的处理对象由这些表转换成Python中的表对象。

           这样的机制意义不小,它能让你在不了解SQL语句的条件下使用数据库。

    准备工作

    1. 安装Python和MySQL;
    2. 安装SQLAlchemy。("easy_install sqlalchemy"即可)。

    总体步骤

    1. 创建一个数据库;
    2. 导入SQLAlchemy库相关内容 (详见下面代码展示部分);
    3. 定义表对象结构;
    4. 建立数据库连接引擎;
    5. 基于 4 中创建的引擎创建一个会话类型;
    6. 定义会话对象;
    7. 定义并初始化表对象;
    8. 插入表对象;
    9. 关闭会话。

    代码示例

     1 # -*- coding: utf-8 -*-
     2 # ================================================
     3 #  作者: 方萌
     4 #  创建时间: 20**/**/**
     5 #  版本号: 1.0
     6 #  联系方式: 1505033833@qq.com
     7 # ================================================
     8 # sqlalchemy 相关模块
     9 from sqlalchemy import Column, String, INT, create_engine
    10 from sqlalchemy.orm import sessionmaker
    11 from sqlalchemy.ext.declarative import declarative_base
    12 # 表对象的基类:
    13 Base = declarative_base()
    14 # 定义User表对象
    15 class User(Base):
    16     # 表名:
    17     __tablename__ = 'testTable'
    18     # 表的结构:
    19     name = Column(String(20), primary_key=True)
    20     age = Column(INT)
    21 # 建立数据库连接引擎
    22 engine = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/testDB')
    23 # 创建DBSession类型
    24 DBSession = sessionmaker(bind=engine)
    25 # 创建session对象
    26 session = DBSession()
    27 # 创建新User对象
    28 new_user = User(name='方萌ORM', age='25')
    29 # 添加到session
    30 session.add(new_user)
    31 # 提交即保存到数据库
    32 session.commit()
    33 # 关闭session
    34 session.close()

    运行结果

           

    小结

           基于ORM机制的库还有很多,可根据实际需要进行选择。

           本文旨在讲述ORM的思想以及展示基本使用套路。更多高级的用法(如创建表,创建外键关系等)请查阅相关文档。

  • 相关阅读:
    代码优化
    使用python的Flask实现一个RESTful API服务器端
    数据结构与算法之排序
    Ubuntu 13.04/12.10安装Oracle 11gR2图文教程(转)
    Linux 下开启ssh服务(转)
    PLSQL Developer 9.如何设置查询返回所有纪录(转)
    linux下安装oracle11g 64位最简客户端(转)
    Linux下关于解决JavaSwing中文乱码的情况(转)
    servlet(jsp)中的重定向和转发
    在用TabbarController中出现navigationController 嵌套报错
  • 原文地址:https://www.cnblogs.com/muchen/p/6882589.html
Copyright © 2020-2023  润新知