SQLAlchemy ORM 日常操作


  1. SQLAlchemy 介绍;

        SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。

        SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象 集合;而对象集合的抽象又重要于表和行。因此,SQLAlchmey采用了类似于Java里Hibernate的数据映射模型,而不是其他ORM框架采用的Active Record模型。不过,Elixir 和declarative等可选插件可以让用户使用声明语法。


   

 2.主要描述 SQLAlchemy (创建数据表,增,删,改,查)

"""
“创建flask mysql 连接配置文件;文件名称 config

"""

config 文件内容如下:
##########SQLalchemy 连接数据库示例#######
#dialect+driver://username:password@host:port/database
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'python'
PASSWORD = '123456'
HOST = '192.168.0.104'
PORT = '3306'
DATABASE = 'Scier'
SQLALCHEMY_DATABASE_URI ="{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,
PASSWORD,HOST,PORT,DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False



"""
导入SQLAlchemy 模块;创建三个数据表; (创建数据表)
"""
# -*- coding: utf-8 -*-
from flask_sqlalchemy import SQLAlchemy
import config

db = SQLAlchemy()

class Create_Script(db.Model):    
    __tablename__ = 'script'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 主键自增长
    name = db.Column(db.String(50), nullable=False)  ###不能为空
    md5 = db.Column(db.String(100), nullable=False)  ###不能为空
    format = db.Column(db.String(10), nullable=False)  ###不能为空
    note = db.Column(db.String(200), nullable=False)  ###不能为空
    type = db.Column(db.String(10), nullable=False)  ###不能为空


class Create_Naming(db.Model):
    __tablename__ = 'naming_02'
    create_time = db.Column(db.DATETIME, nullable=False)  ###创建时间;
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 主键自增长
    type = db.Column(db.String(20), nullable=False)  ###不能为空
    name = db.Column(db.String(20), nullable=False)  ###不能为空
    url = db.Column(db.String(100), nullable=False)  ###不能为空
    create_founder = db.Column(db.String(20), nullable=False)  ###不能为空


class Create_pkg(db.Model):
    __tablename__ = 'softwart_pkg'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)  # 主键自增长
    type = db.Column(db.String(20), nullable=False)  ###软件类型不能为空
    name = db.Column(db.String(50), nullable=False)  ###软件名称不能为空
    format = db.Column(db.String(20), nullable=False)  ###软件格式不能为空
    md5 = db.Column(db.String(50), nullable=False)  ###M5D不能为空#
    upload_time = db.Column(db.DATETIME, nullable=False)  ##上传时间
    access_url = db.Column(db.String(100),nullable=False)  ####访问url地址########
    note = db.Column(db.String(100), nullable=False)  ###软件备注不能为空

    
 db.create_all() 初始化三张数据表

 
 
"""
 插入Create_pkg 数据表; (新增数据表)
 初始化类 Create_pkg 指定字段插入;
 提交事务
"""

pkg_Insert = Create_pkg(type=type, name=name, format=format, md5=file_md5, upload_time=upload_time,
                        access_url=file_url
                        , note=note)
db.session.add(pkg_Insert)  
db.session.commit()


"""
 删除script_table 数据表字段; (删除数据表);
 提交事务
"""
 script01= script_table.query.filter(script_table.type == '系统脚本').all() 或者:.first()
 db.serssion.delete(  script01)
 db.session.commit()
    

"""    
SQLAlchemy 修改数据表字段;   

"""
script01= script_table.query.filter(script_table.type == '系统脚本').all()
script01.type= '系统管理脚本'
db.session.commit()

"""
SQLAlchemy 查询数据表字段;   
"""        
         
####select * from  script where  script.type='系统脚本'    ###查询语句
result = script_table.query.filter(script_table.type == '系统脚本').all()
script01=result[0]
print script01.type


        

猜你喜欢

转载自blog.51cto.com/breaklinux/2161173