pythonインタフェーステストケースフレームワーク(3)-Entity


entity,エンティティ,前述したエンティティクラスについて述べたが,このモジュールの役割はデータ層の取得であり,簡単に言えば,データベースからデータを取得して前述したデータベースのエンティティクラスに組み込む.
これは私が1つのクエリーに記録したインスタンスで、listであれば、そのままループ処理すればいいので、簡単です.
まずmoudleモジュールをインポート
    
import moudle

class Entity:
    def get_info_by_keyID(self, keyID):
        #      ,sql_exec         pymysql fetchall()
        data = Component.Common.sql_exec(
            sqls="SELECT * FROM {0} where keyID='%s'".format("  ")
                 % keyID, dbname="  ").execute()
        #   object_InDo                 
        parm = self.object_InDo(data, "  ", "  ")[0]
        # to object
        return moudle.MInfo(**parm)

    @staticmethod
    def object_InDo(data, table_name, dbname):
        """
        :param data:        
        :param table_name:      
        :param dbname:      
        :return:    model  list
        """
        if data is None:
            data = ((),)
        head = Common().sql_exec(
            sqls="SELECT COLUMN_NAME from COLUMNS where table_name = '%s' and table_schema = '%s';" % (table_name, dbname)
                 , dbname="information_schema").execute()
        #    
        info = {}
        info_list = []
        for item in data:
            data_list = list(item)
            #       
            for i in range(len(head)):
                if isinstance(data_list[i], datetime.datetime):
                    data_list[i] = data_list[i].strftime('%Y-%m-%d %H:%M:%S')
                if isinstance(data_list[i], Decimal):
                    data_list[i] = float(data_list[i])
                info[head[i][0]] = data_list[i]
            info_list.append(info)
        return info_list
は実際に実現することは重要ではなく、主に用例構築モジュール化の思想であり、用例の中でデータを取得するすべての場所がここに集中して統一的に管理され、1つのフィールドを取得しても、実体クラスをロードする必要がないのは同じである.使用例効率を向上させるには、多重性を向上させる必要があります.