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


        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章