Python Opearte SQLAlchemy Do Something

近段时间在看SQLAlchemy,总之万事开头难,但是么办法。

Database Urls

The create_engine() function produces an Engine object based on a URL. These URLs follow RFC-1738, and usually can include username, password, hostname, database name as well as optional keyword arguments for additional configuration. In some cases a file path is accepted, and in others a “data source name” replaces the “host” and “database” portions. The typical form of a database URL is:

dialect+driver://username:[email protected]:port/database 标准连接数据库规范
 
MS-SQL连接案例
Microsoft SQL Server

The SQL Server dialect uses pyodbc as the default DBAPI. pymssql is also available:

# pyodbc
engine = create_engine(‘mssql+pyodbc://scott:[email protected]‘)

# pymssql
engine = create_engine(‘mssql+pymssql://scott:[email protected]:port/dbname‘)

More notes on connecting to SQL Server at Microsoft SQL Server.

这里面测试用的是pyodbc进行连接的,分两种

engine=create_engine("mssql+pyodbc://sa:@192.168.6.112:1433/FactoryHome?driver=SQL+Server+Native+Client+10.0")

还有一种就是通过微软的dsn进行连接,如不知道dsn连接,可以百度一下看看是什么意思

对数据的插入

from sqlalchemy import *

engine=create_engine("mssql+pyodbc://sa:@192.168.6.112:1433/FactoryHome?driver=SQL+Server+Native+Client+10.0")

metadata=MetaData()

Table_1=Table("Table_1",metadata,
Column("Code",String(10)),Column("Name",String(10)))

ins=Table_1.insert().values(Code=‘cccccc‘,Name=‘王二‘)

conn=engine.connect()

result=conn.execute(ins)

参数化的形式,感觉有点感觉比拼接SQL来的快。

result=conn.execute(Table_1.insert(),Code=‘kkkkk‘,Name=‘网易‘)

对于给定的参数也可以这样传值。

对于数据的查询,也必须的先构造一个TABLE,然后对应的字段进行查询

from sqlalchemy import *

engine=create_engine("mssql+pyodbc://sa:@192.168.6.112:1433/FactoryHome?driver=SQL+Server+Native+Client+10.0")

metadata=MetaData()

Table_1=Table("Table_1",metadata,
Column("Code",String(10)),Column("Name",String(10)))

conn=engine.connect()

result=conn.execute(select([Table_1]))

for row in result:
    print(row)

SQLAlchemy最好的方式就是能像SQL语句一样能实现join连接查询

>>> s = select([users, addresses]).where(users.c.id == addresses.c.user_id)
SQL>>> for row in conn.execute(s):
...     print(row)

这样可以通过相关表的关联就能查询数据。

有好多东西,再叙。

时间: 2024-10-30 06:43:03

Python Opearte SQLAlchemy Do Something的相关文章

python之sqlalchemy

python之sqlalchemy ORM: ORM框架的作用就是把数据库表的一行记录与一个对象互相做自动转换. 正确使用ORM的前提是了解关系数据库的原理. ORM就是把数据库表的行与相应的对象建立关联,互相转换. 由于关系数据库的多个表还可以用外键实现一对多.多对多等关联,相应地, ORM框架也可以提供两个对象之间的一对多.多对多等功能. 一 单表操作(不涉及一对多,多对多) #coding:utf8 import sqlalchemy from sqlalchemy import crea

【笔记】python的sqlalchemy数据库连接池原理的说明

sqlalchemy数据库连接池的使用方式是延迟初始化,就是说一开始你调用create_engine(...)后创建的那个数据库池是空的,你后面通过session.connection()或者engine.connect()才开始创建连接, 每当你创建一个连接,你调用engine.pool.status()就可以看到数据库连接池处于什么状态,下面说明以下status()的输出说明: 'Pool size: 16  Connections in pool: 1 Current Overflow:

python使用SQLAlchemy模块连接MySQL

ORM技术:Object-Relational Mapping,负责把关系数据库的表结构映射到对象上. 1.安装SQLAlchemy模块 pip install sqlalchemy 2.初始化连接 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from sqlalchemy import Column, create_engine 5 from sqlalchemy.types import * 6 from sqlalchemy.

python之SQLAlchemy ORM 上

前言: SQLAlchmey是暑假学的,当时学完后也没及时写博客整理下.这篇博客主要介绍下SQLAlchemy及基本操作,写完后有空做个堡垒机小项目.下篇博客整理写篇关于Web框架和django基础~~ 一.ORM介绍 orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯,通过orm将编程语言的对象模型和数据库的关系模型建立映射关系,这样我们

python的sqlalchemy框架

先看一下sqlalchemy框架中的映射,sqlalchemy一共有三种映射方式:传统映射(classic).现代化映射(modern).自定义映射.在这里,只为大家讲一下classic映射和modern映射. classic映射:顾名思义,就是类似于hibernate那样,要写好多配置文件,这里放一个小例子: #coding=utf-8 from sqlalchemy import Table, MetaData, Column, Integer, String, DateTime   fro

python下SQLAlchemy的使用

SQLAlchemy是python中orm常用的框架.支持各种主流的数据库,如SQLite.MySQL.Postgres.Oracle.MS-SQL.SQLServer 和 Firebird. 在安装好SQLAlchemy之后导入相关的模块,如下是一些常用的模块,也可以根据项目的实际需要在添加. from sqlalchemy import Column, String, create_engine #导入包 from sqlalchemy.orm import sessionmaker fro

关于ORM,以及Python中SQLAlchemy的sessionmaker,scoped_session

orm(object relational mapping):对象关系映射. python面向对象,而数据库是关系型. orm是将数据库关系映射为Python中的对象,不用直接写SQL. 缺点是性能略差. 通过sessionmaker,我们得到一个类,一个能产生session的工厂. 我们可以用这个类的对象来操作数据库.example: from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker # a

python 模块 SQLalchemy

''' # &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

Python 之 sqlalchemy查询数据

表结果: 查询代码: #Author Kang import sqlalchemy from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column,Integer,String from sqlalchemy.orm import sessionmaker #创建对象的基类: Base = declarative_b