zoukankan      html  css  js  c++  java
  • 有用的知识点整理

    时间的相互转化

    from dateutil.relativedelta import relativedelta
    from  datetime import *
    import  time
    
    t = int(str(date.today()).split("-")[1])-3     #现在的日期与3月相差几个月
    
    today = date.today()   #  打印年月日
    
    today_time = int(str((time.mktime(today.timetuple()))).split(".")[0])   #今天凌晨的时间戳
    
    time_local = time.localtime(today_time)
    #转换成新的时间格式(2016-05-05 20:28:54)
    dt = time.strftime("%Y-%m-%d %H:%M:%S",time_local)     #时间戳转化为时间格式,字符串
    o_time = datetime.strptime(dt,"%Y-%m-%d %H:%M:%S")-relativedelta(months=t)
    #字符串时间转化为时间格式   并回到三月份
    now = datetime.now()-relativedelta(months=t)
    
    print("today",today,)
    print("today_time",today_time)
    print(t)
    print('o_time',o_time,type(o_time))
    
    print(now,type(now))
    

      

    today 2019-05-09
    today_time 1557331200
    2
    o_time 2019-03-09 00:00:00 <class 'datetime.datetime'>
    2019-03-09 09:40:39.927366 <class 'datetime.datetime'>
    

     

    Django ORM中打印sql语句

    fws = FaultWarning.objects.filter(type='ERROR',create_time__gt=st_time,create_time__lt=now)
    
      print(fws.query)

    data = FaultWarningSerializer(fw, many=True, context={"request": request}).data

      

     计算百分比保留一位小数

    data_dic[_] = (new_dic.get(_), '{:.1f}'.format(((new_dic.get(_)) / count) * 100) + '%')
    

      

     weater_system_count_per = '{:.1f}%'.format((weater_system_count / total_count) * 100)
     wind_system_count_per = '{:.1f}%'.format((wind_system_count / total_count) * 100)
    

      

     数据库更新时间

    sql1 = 'UPDATE bms_rule_faultwarning set create_time = ADDTIME (date("{0}") + interval 0 hour,time(create_time)),update_time = ADDTIME (date("{0}") + interval 0 hour,time(update_time))WHERE create_time like "{1}%"'.format('2019-02-13','2019-04-13')
    

      

     字典根据value排序

    dic = {"name1":1,"name100":4,"name200":3,"name23":0}
    new_dic = dict(sorted(dic.items(), key=lambda d: d[1], reverse=True))
    print(new_dic)
    
    
    {'name100': 4, 'name200': 3, 'name1': 1, 'name23': 0}
    

    sorted函数按key值对字典排序 

    dic = {"name":'alex',"age":18,"name1":"xiao,ming","name2":'wq'}
    t = sorted(dic.keys(),reverse=True)   #倒序
    print(t)
    
    
    ['name2', 'name1', 'name', 'age']
    

    sorted函数按value值对字典排序

     要对字典的value排序则需要用到key参数,在这里主要提供一种使用lambda表达式的方法,如下:

    dic = {"name":'alex',"age":"18","name1":"xiao,ming","name2":'wq'}
    t = sorted(dic.items(),key=lambda item:item[1],reverse=True)   #倒序
    print(t)
    

    这里的d.items()实际上是将dic转换为可迭代对象('name1', 'xiao,ming'), ('name2', 'wq'), ('name', 'alex'), ('age', '18'),items()方法将字典的元素 转化为了元组,而这里key参数对应的lambda表达式的意思则是选取元组中的第二个元素作为比较参数(如果写作key=lambda item:item[0]的话则是选取第一个元素作为比较对象,也就是key值作为比较对象。lambda x:y中x表示输出参数,y表示lambda 函数的返回值),所以采用这种方法可以对字典的value进行排序。注意排序后的返回值是一个list,而原字典中的名值对被转换为了list中的元组。

    字典根据键排序

    d = {'d1':2, 'd2':4, 'd4':1,'d3':3,}
    new_d = {}
    for k in sorted(d, reverse=True):
        new_d[k] = d[k]
    print(new_d)
    

      

     关于distinct()去重

    真正的做法是这样的,如果用mysql 的话,distinct() 里面不要任何参数,参数应该写在 value 中去,类似如下方式:

    if __name__ == "__main__":
        a = Category.objects.values('parentcode','email').distinct()
        for obj in a:
            print obj
    

    这表示按照 parentcode,email 组合去除重复的内容.
    如果是这样:

    if __name__ == "__main__":
        a = Category.objects.values('parentcode').distinct()
        for obj in a:
            print obj
    

    就表示按照 parentcode 去除重复的内容。  

    ClassName.objects.values('name').distinct() .order_by('name')

     时间自动添加

     created_at = models.DateTimeField(auto_now_add=True)
     updated_at = models.DateTimeField(auto_now=True)
    

      Django创建APP

      在每个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。

      所有的APP共享项目资源。

      在pycharm下方的terminal终端中输入命令:

      python manage.py startapp cmdb

      这样就创建了一个叫做cmdb的APP,django自动生成“cmdb”文件夹。

     递归实现斐波那契数列

    def  fbnq(n):
        if  n==1 or  n==2:
            return  1
        return fbnq(n-1)+fbnq(n-2)
    
    y = fbnq(7)
    print(y)
    

      

     记一次redis容器无法启动问题

    运行:   /usr/local/bin/redis-check-aof --fix appendonly.aof

     

    I can feel you forgetting me。。 有一种默契叫做我不理你,你就不理我

  • 相关阅读:
    floyd的魔改应用——洛谷P2419 [USACO08JAN]牛大赛Cow Contest 题解
    洛谷P2142 高精度减法 题解
    浅谈SPFA——洛谷P1576 最小花费 题解
    洛谷P1301 魔鬼之城 题解
    洛谷P1009 阶乘之和 题解
    20200926模拟
    [NOIP 2013]货车运输
    带权并查集--P2024 [NOI2001]食物链
    归并排序/树状数组求逆序对-lgP1908 逆序对
    LCA模块+求树上两点距离最短
  • 原文地址:https://www.cnblogs.com/weidaijie/p/10836686.html
Copyright © 2011-2022 走看看