zoukankan      html  css  js  c++  java
  • 函数一个用法


    '''
    handle all the database interactions
    '''
    import json, time, os
    from conf import settings


    def file_db_handle(conn_params):
    '''
    parse the db file path
    :param conn_params: the db connection params set in settings
    :return:
    '''
    print('file db:', conn_params)
    # db_path ='%s/%s' %(conn_params['path'],conn_params['name'])
    return file_execute #3返回给外部程序,一个函数名。外部程序就可以进行调用,这个函数


    def db_handler(): #1外部程序最先调用这个
    '''
    connect to db
    :param conn_parms: the db connection params set in settings
    :return:a
    '''
    conn_params = settings.DATABASE
    if conn_params['engine'] == 'file_storage':
    return file_db_handle(conn_params) #2返回值是另一个函数的执行结果
    elif conn_params['engine'] == 'mysql':
    pass # todo


    def file_execute(sql, **kwargs):
    """
    对sql语句进行解析并执行
    :param sql: eg. select * from accounts where account=1344
    :param kwargs:
    :return:
    """
    conn_params = settings.DATABASE
    db_path = '%s/%s' % (conn_params['path'], conn_params['name'])

    print(sql, db_path)
    sql_list = sql.split("where")
    print(sql_list)
    if sql_list[0].startswith("select") and len(sql_list) > 1: # has where clause
    column, val = sql_list[1].strip().split("=")

    if column == 'account':
    account_file = "%s/%s.json" % (db_path, val)
    print(account_file)
    if os.path.isfile(account_file):
    with open(account_file, 'r') as f:
    account_data = json.load(f)
    return account_data
    else:
    exit("33[31;1mAccount [%s] does not exist!33[0m" % val)

    elif sql_list[0].startswith("update") and len(sql_list) > 1: # has where clause
    column, val = sql_list[1].strip().split("=")
    if column == 'account':
    account_file = "%s/%s.json" % (db_path, val)
    # print(account_file)
    if os.path.isfile(account_file):
    account_data = kwargs.get("account_data")
    with open(account_file, 'w') as f:
    acc_data = json.dump(account_data, f)
    return True
  • 相关阅读:
    Mongdb 简单增删改查
    mongdb的安装
    VO,DO,DTO,PO,POJO,EJB
    JavaScript是如何工作的:事件循环和异步编程的崛起+ 5种使用 async/await 更好地编码方式!
    判断DataTale中判断某个字段中包含某个数据
    查询表中某个字段的值出现次数大于1的数据
    判断对象数组中是否含有某个对象。
    C# datatable 重新排序
    jquery 验证大于0的整数
    jQuery 心跳请求
  • 原文地址:https://www.cnblogs.com/chengege/p/10259003.html
Copyright © 2011-2022 走看看