999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Flask和爬蟲的書籍循環平臺的設計與實現

2021-09-14 09:08:18李岳松郭史進劉浩宇
科技與創新 2021年17期
關鍵詞:頁面數據庫用戶

燕 妮,李岳松,郭史進,劉浩宇

(中國礦業大學(北京)機電與信息工程學院,北京100089)

閱讀是人類進步的階梯,在新時代倡導全民閱讀,建設書香社會已經成為一項必不可少的文化戰略。隨著近些年高校不斷擴招,教學需求不斷增長以及社會呼吁環保理念,新舊二手書的循環利用已經迫在眉睫。基于此,本次課題基于Python的Flask框架和爬蟲技術手段,開發了一款公益性質的書本循環平臺,為供需雙方搭載了聯系的紐帶,學生們可以把閑置圖書上傳到這個平臺,也可以在平臺構建自己的心愿書單。此次課題讓空閑的書本循環再利用,改善了資源的浪費情況,培養了學生們勤儉環保的優秀美德。

1 需求分析與系統設計

1.1 書本循環平臺的需求分析

書本循環平臺的用戶主要分為三大類,包括管理員、登錄用戶和游客。書本循環平臺主要實現了以下功能:登錄功能、書本總覽功能、詳情信息展示功能、贈送清單功能、心愿單功能。登錄功能包括注冊、登錄和注銷;書本總覽功能在首頁展示了一部分圖書;詳情信息展示功能可以查看到本書的作者、出版年月日和書本簡介等信息并另一側推送相關書目。贈送清單功能展示了用戶可以贈送的書本清單,本平臺區別于其他平臺的地方是不需要拍照上傳等復雜工序,而是采用搜索書名或者ISBN編號實現快速錄入贈送清單,極大提升了用戶的體驗;心愿單功能可以列出用戶想獲得的書本信息,同樣采取搜索方式,點亮書本下方的小愛心就可添加至心愿清單。當用戶訪問平臺時可以選擇注冊登錄或者游客身份,游客身份只能看到首頁展示的書目總覽及登錄后可查看自己的可贈送清單和心愿單。系統總用例圖如圖1所示。

圖1 總用例圖

1.2 書本循環平臺的系統設計

1.2.1 書本循環平臺的概要設計

前后端都使用經典的MVC設計模式[1]。MVC模式分離了視圖層和模型層,并通過控制層相連接。View層主要負責后臺數據的輸出、頁面的呈現和人機交互工作。Controller層用來處理系統業務,翻譯用戶輸入的信息,并按照用戶輸入生成操作模型傳送給Model層,以此滿足用戶需求。Model層負責管理行為和數據,行為表示更新來自Controller的狀態,數據與數據庫相連接,根據請求加載后臺數據,完成業務邏輯,對頁面進行渲染。

本課題設計的MVC書本循環平臺工程目錄結構圖如圖2所示。

圖2 書本循環平臺工程目錄結構圖

common文件包括libs和models文件,存放公共使用的函數和類[2];config文件是整個工程不同環境的配置文件,例如基礎配置、本地配置和生產環境配置;controllers文件內放置用戶登錄和書目信息管理代碼;interceptors是對運行過程中異常處理的編寫;jobs文件夾主要存放爬蟲代碼,包括定時爬蟲和保存從html中獲得的信息;static文件是靜態文件,包括前端所需的CSS、JS等文件;templates是模板存放文件夾;application對全局變量類管理;manager是入口文件,啟動整個工程;requirement.txt說明這個工程所用到的庫,方便后期維護和管理;www文件是路由核心文件。本MVC框架符合Web開發的需求和特點,它對項目進行了合理分工,保證各個模塊同時啟動,互不影響,開發效率顯著提高,節約了人力和時間成本。在開發Web項目時,使用MVC框架便于后期運營和維護,方便系統化管理項目[3]。

1.2.2 書本循環平臺的數據庫設計

數據庫設計是后端管理必不可少的一步,好的數據庫設計在特定的應用環境里可以起到事半功倍的效果。將有效的數據存儲到數據庫中,以此滿足用戶的各項需求。本次課題采用Mysql數據庫服務和navicat可視化工具,主要設計了兩個表單:登錄注冊功能需要的user表單和書目管理所用到的book表單。登錄注冊模塊的數據庫設計,表名為user。字段包括id序號主鍵、nickname昵稱、login_name登錄用戶名、login_pwd登錄用戶密碼、login_salt登錄密碼隨機字符串、status狀態(0:無效,1:有效)、updated_time最后一次更新時間、creatd_time插入時間。

書目管理系列用到的數據庫如表1所示,表名為book。

表1 書目管理系統的數據庫

2 系統實現

2.1 書本循環平臺的實現環境

書本循環平臺的整體框架[4]如圖3所示。

圖3 書本循環平臺整體架構圖

Python計算機編程語言自20世紀90年代誕生以來,憑借其簡潔、規范、可讀性強已經被廣泛運用于腳本編寫和Web開發等領域[5],Python語言既支持面向對象編程也支持面向過程編程,它不僅有豐富的準庫還擁有很多第三方庫,這使得開發人員使用Python可以便捷地解決系列融合問題,使互聯網產品易于維護和迭代。本次課題主要的編譯器是Pycharm,其自帶的調試功能、自動整理代碼格式、歷史提交回滾等功能幫助開發人員提高了開發效率。開發框架選擇的是Flask框架,是一個輕量級Web開發框架,功能強大且兼容其他庫來實現開發需求,它靈活且可擴展性強[6],Werkzeug和模板引擎Jinja是Flask的核心應用。先將Flask實例化,接受一個name參數,用戶在瀏覽器前端做出指令,發送HTTP請求,將請求傳送回服務器,Flask用werkzeug做出路由分發,為每個Url找到對應的視圖函數,接著Flask調用視圖函數進行相應操作,再將響應結果返回客戶端,并將數據渲染到頁面上,以此完成一次程序運行。

Nginx是輕量級Web服務器,適用于高并發連接且內存消耗少,可供跨平臺多個開發系統使用[7],是本次課題服務器選擇方面的不二法門。由于windows系統不支持uwsgi插件,因此需要tornado插件來配合部署高并發架構。在Flask框架中,路由的設置需使用route屬性,這種方式是默認使用get請求,如果需要post請求則需要在列表容器methods中特別設定。當項目較大時,需要的視圖函數會很多,此時需要使用藍圖Blueprint來區分模塊,這樣也有利于后期的代碼維護。

前端部分采用bootstrap前端開發框架,可使前端開發更加迅速簡單。toC比較注重交互,前端采用bootstrap響應式布局,以及骨架圖初始化呈現未加載數據頁面,響應式布局對頁面縮放拖拽特性友好,頁面應該有能力去自動響應用戶的設備環境,同時會考慮一些不同瀏覽器之間的兼容性。另一方面使用模版引擎渲染技術,利用正則表達式分解出普通字符串和模板標識符,將模版表達式替換為瀏覽器語言表達式,模版引擎將數據和頁面分離,可以通過變量更新頁面,提高代碼復用擴展能力,并且可以在頁面中寫入一些具體邏輯,方便渲染。網頁調試工具可以采用chrome插件類產品,可以發送所有類型請求的postman進行接口測試工作。

書籍清單主要依靠爬蟲技術和正則表達式獲得。一只爬蟲可以從目標網頁的html中提取開發者的需求內容,以及和網頁進行交互。本次課題使用的是BeautifulSoup庫,用來解析html,但在代碼編寫時要注意查看源碼的編碼方式,加以解碼[8]。之后將爬到的數據按標準化格式傳遞給model業務邏輯層,邏輯層使用正則表達式和第三方庫對數據進行清洗與封裝,并存儲到數據庫中。設計好的數據庫將用于存儲用戶的賬號密碼,并使用md5加密[9]保護用戶的隱私性。書單查詢、修改和新增等操作也是基于數據庫進行的。

2.2 書本循環平臺的模塊實現

登錄模塊主要分為注冊和登錄兩部分,點擊注冊按鈕會跳轉到注冊頁面,用戶輸入信息會判斷其完整度和格式標準度,給用戶相應的反饋,如圖4所示。

圖4 注冊模態框

書籍總覽和書本詳情信息數據來源:通過封裝的Hook函數以及Ngnix定時任務,從一些開放式網站定時爬取最新的數據,并將其存放到數據庫中。整體頁面通過模板引擎渲染,當用戶訪問不同頁面時,瀏覽器會根據請求發送信息到Nginx服務器,并發訪問視圖函數,將需求信息呈現出來。效果如圖5所示。

圖5 書籍詳情展示效果圖

3 總結

本文基于Python的Flask框架,結合爬蟲技術設計了一款書籍循環平臺,該平臺設計美觀大方,交互靈活且人性化,代碼段內聚性高耦合性低且可讀性強,便于后期維護,同時巧妙利用瀏覽器的cookie機制,改善服務器的負荷壓力,提高頁面響應性能。平臺旨在實現書籍再利用,有效緩解了高校書籍浪費現象,為推動節約型環保社會奉獻了一份力量。

猜你喜歡
頁面數據庫用戶
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 亚洲人成网线在线播放va| 国产成人综合亚洲欧洲色就色| 72种姿势欧美久久久大黄蕉| 尤物特级无码毛片免费| 精品自拍视频在线观看| 中文字幕在线日本| 国产福利影院在线观看| 天天视频在线91频| 欧美国产精品拍自| 在线视频一区二区三区不卡| 亚洲成aⅴ人在线观看| 日韩亚洲综合在线| 亚洲日韩精品伊甸| 欧美成a人片在线观看| 狠狠五月天中文字幕| 中文字幕色在线| 亚洲欧美不卡中文字幕| 91综合色区亚洲熟妇p| 美女无遮挡拍拍拍免费视频| 操美女免费网站| 五月激情婷婷综合| 欧美中文字幕在线二区| 91无码国产视频| 女人18一级毛片免费观看| 91无码视频在线观看| 国模视频一区二区| 国产视频一区二区在线观看| 欧美精品1区2区| 99视频在线免费| 伊人无码视屏| 亚洲国产清纯| 福利一区在线| 激情无码视频在线看| 中文字幕免费视频| 日韩精品毛片| 国产剧情国内精品原创| 国产又黄又硬又粗| 毛片久久网站小视频| 成年A级毛片| 波多野结衣视频网站| 国产导航在线| 成人免费午夜视频| 超级碰免费视频91| 国产色网站| 亚洲无线视频| 久久人人97超碰人人澡爱香蕉| 97在线碰| 久久这里只有精品2| 欧美精品xx| 中文天堂在线视频| 欧洲高清无码在线| 国产成人精品第一区二区| 中文无码精品A∨在线观看不卡 | 亚洲欧洲日产国码无码av喷潮| 中文无码精品a∨在线观看| 国产大片黄在线观看| 少妇极品熟妇人妻专区视频| 亚洲中文字幕无码爆乳| www.亚洲一区| 欧美国产日韩另类| 午夜电影在线观看国产1区| 欧美高清三区| 免费看a级毛片| 婷婷亚洲视频| 久热99这里只有精品视频6| 欧洲熟妇精品视频| 97成人在线观看| 手机精品视频在线观看免费| 国产区精品高清在线观看| 久久久受www免费人成| 久久一日本道色综合久久| 久久综合伊人 六十路| 亚洲日韩第九十九页| 免费国产无遮挡又黄又爽| 欧美中文字幕第一页线路一| 欧亚日韩Av| 国产成人免费| 免费国产无遮挡又黄又爽| 日本妇乱子伦视频| 免费不卡视频| 国产色伊人| 亚洲成网777777国产精品|