前言
在非django框架的ORM当中,我们有很多选择,包括大名鼎鼎的重量级选手sqlalchemy和颇受欢迎的轻量级明星peewee,这2者的的介绍和教程网上到处都是,我这里就不介绍了。因为一个偶然的机会,了解到还有一款轻量级的orm—ponyorm, 官网在此https://ponyorm.org。被它的低学习成本和高度抽象化所吸引,本着独乐乐不如众乐乐的原则,特别介绍给大家,?目的是为了大家在使用python的ORM时有更多的选择。
首先,这是一款战斗民族(俄罗斯)的作品,印象中,俄罗斯的东西都是自带黑魔法属性的,比如 Kaspersky,nginx之流???
相对其他的ORM有以下几个特点:
- 学习成本低: 没有复杂的声明方式和眼花缭乱的查询语法,使用python原生类型定义字段。入门很容易。
- 抽象程度高: 对数据库方面的预备知识要求很少,使用起来有种黑魔法的感觉,所以也常被成为只有Python魔法少女才知道的ORM
- 使用便捷 相比其他的ORM,pony使用更少的代码实现了同样操作。代码简洁,大量的缺省值的设定非常合理,即使是新手,也能写出可靠,简洁的程序。
- 在线的模型编辑器很上手:在编辑上设计好模型,直接可以生成代码和sql语句,对于小型团队开发,这个非常提升效率。
好了,下面开始
以下示范以ubuntu 18.04 + python3.6为例,你的系统可能有所不同。请自行调整。
安装
pip install pony
建立数据库连接
新建一个 pony_db.py 文件,输入如下代码
# -*- coding: utf-8 -*-
from pony.orm import * # 引入
from datetime import date
from datetime import datetime
setting = {
"provider": "mysql", # 声明数据库种类
"host": "127.0.0.1", # 数据库主机地址,也可以是域名
"port": 3306, # 端口
"database": "test_db", # 数据库名
"user": "test_01", # 用户名
"password": "******", # 密码
"charset": "utf8mb4", # 字符集
}
db = Database(**setting) # 生成数据库引擎
class Employee(db.Entity):
"""员工类"""<