from ast import Delete
from operator import or_
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import json
#地址
HOSTNAME = ''
#端口
PORT = '4322'
#用户名
USERNAME = ''
#密码
PASSWORD = ''
#数据库名
DATABASE = ''
DB_URL = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)
#创建数据库引擎
engine = create_engine(DB_URL)
# SQLAlchemy 操作数据库,需要引入另外一个对象 Session。
# Session 建立与数据库的会话 (conversation),可以将其想象成对象的容器,
# 包含的对象叫 identity map 的结构,identity map 的作用就是保证对象的唯一性。
# 另外,Session 对 Python 对象进行状态管理
# Session = sessionmaker(bind=engine)
# session = Session()
from models2 import *
# ------------------select语句------------------
# 单表查询常见的有两种方式,第一种方式是将 model 类作为参数传递给 query() 方法
# 获取全部信息
def test_query1():
obj_list1 = engine.session.query(Clb_list_media_proxy).all()
print(len(obj_list1)) #3475
test_query1()
# # 只需要获取部分字段
# def test_query2():
# obj_list2 = session.query(Clb_list_media_proxy.clb_ip).all()
# print(len(obj_list2)) #3475
# # Query 对象提供了 filter() 方法和 filter_by() 方法用于数据筛选
# # filter_by() 适用于简单的基于关键字参数的筛选。 filter() 适用于复杂条件的表达。
# def test_filter_le():
# clb = session.query(Clb_list_media_proxy).filter_by(clb_ip = '1.13.151.144').first()
# print(clb)
# def test_filter_ne():
# clb = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_ip.like('1.13.151.%')).first()
# print(clb)
# def test_filter_in():
# clb = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_ip.in_(['1.13.151.144', '1.13.151.155'])).first()
# print(clb)
# def test_filter_notin():
# clb = session.query(Clb_list_media_proxy).filter(~Clb_list_media_proxy.clb_ip.in_(['1.13.151.144', '1.13.151.155'])).first()
# print(clb)
# def test_filter_isnull():
# clb = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_ip == None).first()
# print(clb)
# def test_filter_isnotnull():
# clb = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_ip != None).first()
# print(clb)
# def test_filter_and():
# clb = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_ip != None, Clb_list_media_proxy.clb_ip.like('1.13.151.%')).first()
# print(clb)
# def test_filter_or():
# clb = session.query(Clb_list_media_proxy).filter(or_(Clb_list_media_proxy.clb_ip != None, Clb_list_media_proxy.clb_ip.like('1.13.151.%'))).first()
# print(clb)
# # ------------------insert语句------------------
# def test_add_obj():
# # 创建一个行对象
# obj = Clb_list_media_proxy(
# clb_ip = '0',
# clb_origin_region = '0',
# clb_current_region = '0',
# clb_isp_name = '0',
# clb_vpc = '0',
# bind_num = 0,
# user = '0',
# cluster_type = None,
# clb_id = '0',
# timestamp = None
# )
# session.add(obj)
# session.commit()
# # ------------------update语句------------------
# def test_update_obj():
# obj = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_id == '0').first()
# print(obj.bind_num)
# obj.bind_num = 1
# session.commit()
# # ------------------delete语句------------------
# def test_delete_obj():
# obj = session.query(Clb_list_media_proxy).filter(Clb_list_media_proxy.clb_id == '0').first()
# session.delete(obj)
# session.commit()
# # 多表操作
# # 参考文档
# # https://docs.sqlalchemy.org/en/14/tutorial/index.html
或者
No comments yet.