对象关系映射
Object Relational Mapping(ORM)
用于实现面向对象程序设计里不同类型之间系统的数据之间的转换。
面向对象是在软件工程的基础上发展起来,而关系型数据库则是从数学原理发展起来,两者之间存在着显著的差别。为了解决这个差别,对象关系映射技术应运而生。
使用对象关系映射的优点和缺点
一、使用ORM优点
避免和复杂的SQL语句打交道
提高开发效率,更容易理解
方便形成统一风格代码
带来一些安全性上的提升
二、使用ORM缺点
系统消耗较大
处理较复杂的查找条件时,使用ORM不够灵活
占用内存较大
实际例程展示ORM操作方法
from flask import Flask,request,render_template,redirect
from flask_sqlalchemy import SQLAlchemy
from wtforms import Form,TextField,PasswordField,validators
# WTForms用于处理浏览器表单提交的数据。
# 因为通过请求上下文获取客户端数据进行解析,代码较繁杂,用WTForm可以简化处理
app = Flask(__name__)
class Config(object):
# 配置 sqlalchemy "数据库+数据库驱动://数据库用户名:密码@主机地址:端口/数据库?编码"
# 指定数据库的链接信息
# 'mysql://root:root@127.0.0.1/tushare?charset=utf8' #这是Python2的
# 'mysql+pymysql://root:root@127.0.0.1/tushare?charset=utf8' #这是Python3的
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/test'
'''设置sqlalchemy自动跟踪数据库'''
# 该配置将来会被禁用,设置为False可解除警告信息
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 设置参数
app.config.from_object(Config)
'''创建数据库 sqlalchemy 工具对象'''
db = SQLAlchemy(app)
# db = pymysql.connect(host='localhost',
# user='root',
# port=3306,
# password='123456',
# database='user',
# charset='utf8')