python ORM SQLAlchemy 使用示例,ormsqlalchemy,ORM方法论基于三个核心
python ORM SQLAlchemy 使用示例,ormsqlalchemy,ORM方法论基于三个核心
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、使用SQLAlchemy创建表结构
例:创建名为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、创建映射关系
from sqlalchemy.orm import mappermetadata = MetaData(engine)users_table = Table('users', metadata, autoload=True)print users_table.columns
5、插入并显示数据
insert = users_table.insert()insert.execute(name='leon', fullname='leon liang', password='leon123')mapper(User, users_table)ed_user=User('crackpot','Crackpot','password')print 'username:', ed_user.nameprint 'fullname:', ed_user.fullnameprint 'password:', ed_user.passwordprint 'id:', str(ed_user.id)
到此为止,一个简单的最基础的操作SQLAlchemy 学习结束了,使用ORM,可以让程序员更多的去关注实现逻辑而不用花太多时间去写SQL语句,可能使用项目代码更规范,多个协同开发时更能体现这点好处,而且直接写SQL语句也容易出错,大中型的项目推荐使用ORM。
相关内容
- C#, Java, PHP, Python和Javascript几种语言的AES加密解密实现,
- Python异步读取子进程输出,python异步进程,python的subpr
- 如何获得python实例的class名称,python实例class,有几种方
- python print会打印出一行文本,如何不打印换行符,pyt
- python subprocess.Popen获得子进程 的返回值,,python的subpr
- Python Menu Button Demo,pythonbutton,from Tkinter
- 基于python和树莓派的微博机器人(进阶篇:能够发图片
- Basic threaded Python TCP server,threadedpython,TCP provides
- python的按钮单击双击事件处理,python按钮,from Tkinter
- python的魔法__slots__,python魔法__slots_,看python社区大妈组
评论关闭