目录

SqlAlchemy

外键

 

 


SqlAlechemy

SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。

 

python学习day11

Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:

MySQL-Python
    mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
 
pymysql
    mysql+pymysql://<username>:<password>@<host>/<dbname>[?<options>]
 
MySQL-Connector
    mysql+mysqlconnector://<user>:<password>@<host>[:<port>]/<dbname>
 
cx_Oracle
    oracle+cx_oracle://user:pass@host:port/dbname[?key=value&key=value...]
 
更多详见:http://docs.sqlalchemy.org/en/latest/dialects/index.html

创建表(实例方法)

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey

metadata = MetaData()

user = Table('user', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)),
)

color = Table('color', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String(20)),
)   #表结构
engine = create_engine("mysql+pymysql://root:1234@127.0.0.1:3306/mydb?charset=utf8", max_overflow=5)#链接数据库
metadata.create_all(engine)
 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData, ForeignKey
 5 
 6 metadata = MetaData()
 7 
 8 user = Table('user', metadata,
 9     Column('id', Integer, primary_key=True),
10     Column('name', String(20)),
11 )
12 
13 color = Table('color', metadata,
14     Column('id', Integer, primary_key=True),
15     Column('name', String(20)),
16 )
17 engine = create_engine("mysql+mysqldb://root:123@127.0.0.1:3306/s11", max_overflow=5)
18 
19 conn = engine.connect()
20 
21 # 创建SQL语句,INSERT INTO "user" (id, name) VALUES (:id, :name)
22 conn.execute(user.insert(),{'id':7,'name':'seven'})
23 conn.close()
24 
25 # sql = user.insert().values(id=123, name='wu')
26 # conn.execute(sql)
27 # conn.close()
28 
29 # sql = user.delete().where(user.c.id > 1)
30 
31 # sql = user.update().values(fullname=user.c.name)
32 # sql = user.update().where(user.c.name == 'jack').values(name='ed')
33 
34 # sql = select([user, ])
35 # sql = select([user.c.id, ])
36 # sql = select([user.c.name, color.c.name]).where(user.c.id==color.c.id)
37 # sql = select([user.c.name]).order_by(user.c.name)
38 # sql = select([user]).group_by(user.c.name)
39 
40 # result = conn.execute(sql)
41 # print result.fetchall()
42 # conn.close()
增删改查

相关文章:

  • 2021-10-12
  • 2021-12-25
  • 2022-12-23
  • 2021-04-12
  • 2021-09-17
  • 2021-09-06
猜你喜欢
  • 2021-04-11
  • 2021-08-15
  • 2021-10-01
  • 2022-12-23
  • 2021-09-14
  • 2021-06-20
  • 2021-11-17
相关资源
相似解决方案