日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一个丑陋的文件下载网站

發布時間:2025/3/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个丑陋的文件下载网站 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近來有個客戶需要遠程數據庫里面的信息,但是又不想開放主機真實ip,用戶密碼,數據庫用戶密碼這些信息,就搞了一個丑陋的文件下載網站,把這些信息封裝了起來

用到的包flask ,mysql-connector-python,xlwt

實現思路:

1、使用python連接數據庫,讀取數據

  使用mysql.connector模塊連接數據庫

  因語句固定,所以寫到了腳本中,未實現用戶交互輸入,其實是懶

2、將數據進行處理后,寫入excel表格

  使用xlwt模塊寫入excel表格

  因查出的數據格式和需要的不同,所以需要進行數據預先處理,然后再寫入excel

3、通過web瀏覽器下載excel文件

  使用flask框架實現網頁登錄驗證,實現文件下載

  通過nginx做代理,提供公網訪問

?

經過一番折騰,終于功能實現,是否有bug,后續用用再說。有感觸的幾個地方有:

架構:將每個功能寫入不同的模塊,這樣每個功能都可以單獨測試,使用if __name__ == '__main__': test()寫測試用例進行調試。當然也可以使用nosetests這樣專門的測試模塊,不過當時寫的時候,還沒接觸nosetest。。。再加上功能也不復雜,后面也就不打算改寫了

mysql數據庫連接:可以使用字典存儲連接信息,這樣對于更換測試環境和生成環境會很方便;使用try語句連接,進行異常處理

try:conn = mysql.connector.connect(**config)except mysql.connector.Error as e:print('open database failed !{} '.format(e))cursor=conn.cursor()cursor.execute(sql_str)values=cursor.fetchall()
cursor.close()conn.close()

?

sql語句:使用字典存儲語句,key值使用中文字符串,為后續寫入excel的中文標簽使用,非常方便

查詢結果處理:因為查詢語句的結果只有記錄,沒有字段頭,所以把查詢結果和字段列表進行了拼接,

sh_ysh_tou=[('名稱','類型',‘審核人’,'創建時間','任務狀態'),]jg_dict['已審核'] = sh_ysh_tou + jg_dict['已審核']

?寫入excel:實現自定義單元格格式。

def newf(data_dict):
#新建文件datatable = xlwt.Workbook(encoding='utf-8', style_compression=0) #加邊框 borders = xlwt.Borders()borders.left = 1borders.right = 1borders.top = 1borders.bottom = 1borders.bottom_colour=0x3A #定義樣式style = xlwt.XFStyle()style1 = xlwt.XFStyle()style.borders = bordersstyle1.borders = borders
#自定義日期格式style1.num_format_str='YYYY/M/D h:mm:ss'
for k in data_dict:
#新建標簽newsheet = datatable.add_sheet(k, cell_overwrite_ok=True) #新建excel文檔sheetx=0for l in data_dict[k]:y=0for i in l:if(y == 3):newsheet.write(x, y, i, style1)else:newsheet.write(x, y, i, style)y+=1x+=1

#設置列寬four_col=newsheet.col(3)first_col=newsheet.col(0)third_col=newsheet.col(2)first_col.width=256*40third_col.width=256*15four_col.width=256*20

#保存文件datatable.save('結果'+'.xls')

web框架:用到了 Flask,request,send_from_directory

app = Flask(__name__)@app.route('/signin', methods=['POST']) def signin():# 需要從request對象讀取表單內容:if request.form['username']=='admin' and request.form['password']=='password':chaxun()return send_from_directory(os.getcwd(),'結果.xls',as_attachment=True)if __name__ == '__main__':app.run()

?

越用,越覺得python優雅!嘿嘿

?

轉載于:https://www.cnblogs.com/mathprice/p/9228215.html

總結

以上是生活随笔為你收集整理的一个丑陋的文件下载网站的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。