12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # -*- coding: utf-8 -*-
- __author__ = 'wanger'
- __date__ = '2024-08-20'
- __copyright__ = '(C) 2024 by siwei'
- __revision__ = '1.0'
- import time
- from typing import Optional
- import os
- import psycopg2
- import uuid
- import siwei_config
- class PostgreSQL:
- # 用户表
- Sys_user = "sys_user"
- # 全局参数修改
- db_config = siwei_config.CONFIG['db']
- def __init__(
- self,
- host: Optional[str] = db_config['host'], # default host during installation
- port: Optional[str] = db_config['port'], # default port during pg installation
- user: Optional[str] = db_config['user'], # default user during pg installation
- password: Optional[str] = db_config['password'], # default password during pg installation
- dbname: Optional[str] = db_config['name'], # default dbname during pg installation
- schema: Optional[str] = db_config['schema']
- ):
- # 配置数据库连接参数并指定schema
- self.connparams = {
- "dbname": dbname,
- "user": user,
- "password": password,
- "host": host,
- "port": port,
- "options": "-c search_path=otherSchema," + schema if schema is not None else None
- }
- self.conn = psycopg2.connect(**self.connparams)
- # 创建一个游标对象
- self.cur = self.conn.cursor()
- def execute(self, sql):
- # 执行一个查询
- self.cur.execute(sql)
- # 获取查询结果
- return self.cur.fetchall()
- def close(self):
- # 关闭游标和连接
- self.cur.close()
- self.conn.close()
- # 根据用户名查询密码
- def getPasswordByUsername(self, username):
- sql = "SELECT password FROM {} t where t.user_name = '{}'".format(self.Sys_user, username)
- self.cur.execute(sql)
- rows = self.cur.fetchall()
- return rows
- # 判断数据是否为字符串
- def is_string(self, var):
- return isinstance(var, str)
|