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
主站蜘蛛池模板: 22sihu国产精品视频影视资讯| 综合亚洲色图| 欧美激情福利| 色综合中文综合网| 欧美午夜精品| 免费在线看黄网址| 国产成人精品亚洲77美色| 国产精品丝袜在线| 国产一二三区视频| 亚洲一区二区在线无码| 亚洲日韩精品欧美中文字幕| 欧美19综合中文字幕| 极品av一区二区| 日韩不卡免费视频| 国产精品香蕉| 日韩精品视频久久| 国产丝袜啪啪| 亚洲第一视频网站| 久久一日本道色综合久久| 91麻豆国产精品91久久久| A级毛片高清免费视频就| 欧美69视频在线| 制服丝袜 91视频| 中文天堂在线视频| 91色爱欧美精品www| 国产毛片不卡| 欧美一区国产| 国产69精品久久| 青青国产视频| 久青草国产高清在线视频| 国产精品无码在线看| 国产精品亚洲日韩AⅤ在线观看| 久久精品国产免费观看频道| 欧美精品亚洲二区| 综合色在线| 丁香六月激情综合| 97se亚洲综合不卡| 五月婷婷激情四射| 国产情精品嫩草影院88av| 久久天天躁狠狠躁夜夜2020一| 亚洲区视频在线观看| 美女毛片在线| 91无码视频在线观看| 久久中文字幕不卡一二区| 久久亚洲美女精品国产精品| 97视频在线精品国自产拍| 欧美在线免费| 高潮毛片无遮挡高清视频播放| 又猛又黄又爽无遮挡的视频网站| 亚洲国产午夜精华无码福利| 久久精品国产一区二区小说| 亚洲AV无码不卡无码| 久久精品国产一区二区小说| 最新国产你懂的在线网址| 精品视频在线一区| 亚洲福利一区二区三区| 亚洲bt欧美bt精品| 免费jizz在线播放| 无码综合天天久久综合网| 亚洲av无码片一区二区三区| 97在线公开视频| 国产精品女同一区三区五区| 在线色综合| 欧美成人区| 国产精品第5页| 亚洲免费黄色网| 在线中文字幕日韩| 中文字幕亚洲精品2页| 国产污视频在线观看| 亚洲人成网线在线播放va| 99伊人精品| 国产毛片高清一级国语| 国产人妖视频一区在线观看| 国产尤物视频在线| 久久综合干| 毛片在线区| 国产亚洲精品自在线| 国内毛片视频| 精品三级网站| 亚洲第一在线播放| 国产91麻豆免费观看| 超碰精品无码一区二区|