有用的知识点整理
時間的相互轉化
from dateutil.relativedelta import relativedelta from datetime import * import timet = 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 組合去除重復的內容.
如果是這樣:
就表示按照 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 1return fbnq(n-1)+fbnq(n-2)y = fbnq(7) print(y)
?
轉載于:https://www.cnblogs.com/weidaijie/p/10836686.html
總結
- 上一篇: VS Code Remote,在服务器上
- 下一篇: SpringMVC基础配置及使用