Python窗體之大學生成績查詢

一、麻雀雖小,五臟俱全

本系統用到的python庫:
tkinter——用於創建windows窗體
requests——用於請求獲取數據
PIL——用於處理驗證碼圖片
lxml——用於處理獲得的數據
xlwt——用於將數據保存爲Excel文件
pyinstaller——用於將python文件轉爲exe文件

二、思維導圖

1)分析需求,建立大致方向
2)學習相關知識,學以致用
3)分析網頁數據,並記錄關鍵點
4)建立測試代碼,得到滿意結果爲止
5)根據需求建立窗體大致模型
6)組合代碼,不斷運行
7)處理bug
8)生成exe
9)測試exe
10)分享exe

三、經驗總結

1、窗體問題

1)創建窗體

from tkinter import *
root = Tk()
root.title("成績查詢系統")    #標題
root.geometry('360x300')
root.maxsize(360,300)       # 限制窗口大小
root.minsize(360,300)
root.mainloop()

簡簡單單五行代碼就創建了一個不含任何控件的大小爲360x300(中間爲小寫的x)的窗體
在這裏插入圖片描述
-----------窗體屬性---------

2)窗體中的控件

#定義退出按鈕命令
def exit():
    root.quit()
btn1 = Button(root, text='退出系統', command=exit)
btn1.grid(column=0,row=0)

定義了一個按鈕,放在root窗體,顯示名稱爲 退出系統, command理解爲按鈕點擊時執行的函數;.grid()爲一種排列方式,另外還有 .place() , .pack()
在這裏插入圖片描述
-----------------窗體控件---------------------

3)動態設置控件屬性(文本)

zh = Entry(root)
zh.grid(column=3, row=2)
zh.insert(0,'2016200000') #通過該語句可向輸入框中插入字符串
keyword = Entry(root,show='*') # 若爲密碼則輸入的字符將顯示爲 *
keyword.grid(column=3, row=4)

keyword['show']=''  # 該語句會修改顯示方式(即顯示輸入的文本)

4)製作表格

from tkinter import ttk, messagebox
from tkinter import *
root = Tk()
root.title('全部成績')
root.geometry('800x600')
root.maxsize(800,600)
root.minsize(800,600)

columns = ('學期','科目','學分','課程屬性','成績')

tv = ttk.Treeview(root, show='headings',columns=columns)
tv.column('學期', width=200, anchor='center')
tv.column('科目',width=300,anchor='center')
tv.column('學分',width=100,anchor='center')
tv.column('課程屬性',width=100,anchor='center')
tv.column('成績',width=100,anchor='center')

tv.heading('學期', text='學期')
tv.heading('科目',text='科目')
tv.heading('學分',text='學分')
tv.heading('課程屬性',text='課程屬性')
tv.heading('成績',text='成績')
tv.pack(side=LEFT,fill=BOTH)

root.mainloop()

2、爬蟲問題

import requests
#請求頭
header = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0'
    }
#請求數據
data = {
    'zjh':'',
    'mm':'',
    'v_yzm':''
}

brower = requests.session() # 創建session對象

cookie = brower.cookies.get_dict()  # 獲取cookie值

res = brower.post(url1,data=data,headers=header,cookies=cookie).text 

3、保存到Excel

import xlwt

columns = ('學期','科目','學分','課程屬性','成績')

dir = '我的成績單.xlsx'   # 文件路徑
f = xlwt.Workbook()    # 創建工作簿
sheet1 = f.add_sheet('成績單') #創建成績單工作表
sheet1.col(0).width = 256*50 #設置單元格寬度
sheet1.col(1).width = 256 * 50
sheet1.col(2).width = 256 * 10
sheet1.col(3).width = 256 * 10
sheet1.col(4).width = 256 * 10
row0 = list(columns) 
for i in range(5):
    sheet1.write(0,i,row0[i])# 向工作表第一行寫數據作爲表頭
f.save(dir)  # 保存文件到指定路徑

4、生成exe

1)安裝pyinstaller

pip install pyinstaller

2)打包

cmd 命令行切換到項目目錄,執行下列語句

pyinstaller -F -w main.py   # 此處應注意大小寫

最後一行看到successful字樣,即可在項目根目錄的dist目錄下找到exe文件,雙擊即可執行

3)部分錯誤

若exe文件因錯誤無法打開
嘗試以下語句

pyinstaller -F main.py   # 此處應注意大小寫

完成後雙擊exe文件會有一個黑框一閃而過,需要用到截屏將黑框截圖,裏面顯示了錯誤信息,根據錯誤信息對症下藥。

在這裏插入圖片描述
在這裏插入圖片描述
-------------參數說明---------------

四、全部代碼

1、代碼已上傳到GitHub

GitHub地址https://github.com/helloboy236/score.git

2、pyinstaller 生成的exe文件包

鏈接:https://pan.baidu.com/s/1LClBmu54FlwvZcOvgbk2-A 提取碼:izp3
複製這段內容後打開百度網盤手機App,操作更方便哦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章