1. 程式人生 > 實用技巧 >Deepin_使用Python+MySQL建立工作日誌記錄

Deepin_使用Python+MySQL建立工作日誌記錄

Deepin_建立建議工作日誌記錄

1. 概述

有款跨平臺的輕量級小工具,叫uTools,它有些自帶的外掛——todo,如果設定了全域性快捷鍵,使用todo記錄一些日誌,備忘,非常完美。

但是uTools在Deepin上啟動速度不是很友好,所以我就放棄了(當然win平臺還是在用的)。

然後因為是Linux桌面作業系統(Deepin),免不了自己倒騰一下啦。

2. 倒騰過程

2.1 環境準備

環境很簡單,Deepin自帶了Python環境,就用Python來寫個指令碼,把文字資訊存入資料庫。所以安裝資料庫,這裡不再詳述如何安裝資料庫。

我安裝的是MySQL。

總結:

  • Python 系統自帶
  • MySQL 使用包管理工具安裝sudo apt-get

2.2 建立資料庫

安裝好MySQL之後,建立一個數據庫以及表格

create database my_work;
use my_work;
CREATE TABLE `t_2020_work_log` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `content` varchar(500) DEFAULT NULL,
  `update_time` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4

表格很簡單,就是一個content欄位,表示日誌/備忘內容,update_time欄位表示插入的時間

2.3 編輯指令碼

2.3.1 錄入指令碼

#!/usr/bin/env python2
# -*- coding:utf-8 -*-

import pymysql
import sys
import readline

def connect_my():
    return pymysql.connect(host='localhost',port=3306,user='資料庫賬號',password='資料庫密碼',database='my_work')

def insert_sql(name):
    conn = connect_my()
    cur = conn.cursor()
    try:
        sql_str = """
            insert into t_2020_work_log(`content`) values("%s")
        """ % name
        cur.execute(sql_str)
        conn.commit()
    except Exception:# as e:
        conn.rollback()
    finally:
        cur.close()
        conn.close()


print("本週工作記錄(回車鍵結束輸入):")
i = 1
aaa = list()
try:
    while True:
        content=raw_input(str(i)+":")
        if not content:
            break
        else:
            aaa.append(str(i)+":"+content)
            i += 1
    if aaa:
        insert_sql(";".join(aaa))
    else:
        pass
except KeyboardInterrupt:
    print("終止輸入,退出")

2.3.2 報告指令碼

#!/usr/bin/env python2
# -*- coding:utf-8 -*-
import pymysql

def connect_my():
    return pymysql.connect(host='localhost',port=3306,user='賬號',password='密碼',database='my_work')

def select_all():
    conn = connect_my()
    cur = conn.cursor()
    sql_str = """ select content from t_2020_work_log;""" 
    cur.execute(sql_str)
    data=cur.fetchall()
    cur.close()
    conn.close()
    return data

for info in select_all():
    for a in "".join(info).split(";"):
        print(a)
    print("*****************************************************")

2.4 配置快捷

Deepin設定全域性快捷鍵,把上述兩個指令碼,設定快捷鍵

快捷鍵命令:

#工作報告
deepin-terminal -m maximize -l "one light" -e python /home/liwl/.myscripts/work_report.py 
#工作記錄
deepin-terminal -m maximize -l "one light" -e python /home/liwl/.myscripts/work_record.py