計算機科學與技術-基于Django酒店(桐楓谷)數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)_第1頁
計算機科學與技術-基于Django酒店(桐楓谷)數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)_第2頁
計算機科學與技術-基于Django酒店(桐楓谷)數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)_第3頁
計算機科學與技術-基于Django酒店(桐楓谷)數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)_第4頁
計算機科學與技術-基于Django酒店(桐楓谷)數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

酒店(桐楓谷)數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)摘要:網(wǎng)絡技術的發(fā)展已經(jīng)滲透到企業(yè)管理的方方面面,是個各大企業(yè)的管理工作越來越依賴互聯(lián)網(wǎng)絡,尤其是隨著我國社會經(jīng)濟的發(fā)展,信息迅速的發(fā)展,使得企業(yè)的管理負擔愈來愈重,酒店行業(yè)的管理亦是如此。酒店行業(yè)高度發(fā)展,其管理工作就變得尤為重要,高效的管理可以提高酒店的效率。但是在現(xiàn)在大多數(shù)的酒店管理卻還停留在人工手工的去管理,這樣的模式就使得員工需要大量的時間以及精力去處理顧客各種各樣的需求亦或投訴。長久如此的管理制度會使得酒店面臨倒閉的風險,于是卓越的系統(tǒng)設備提供精良的用戶體驗,讓酒店經(jīng)理、酒店顧客,前臺專員等出入于酒店的相關人員體驗到本系統(tǒng)所帶來的前所未有的優(yōu)質(zhì)服務成為了本次系統(tǒng)設計的重要考題。市場上的酒店管理系統(tǒng)千千萬萬,實現(xiàn)系統(tǒng)的技術也是各種各樣,本系統(tǒng)的采用Django框架技術開發(fā),Django框架是python開發(fā)的一個強大的又免費開源的Web框架技術。程序開發(fā)人員使用干凈簡潔的代碼便可輕松的完成一個完整系統(tǒng)的大部分功能,這也是該技術的亮點所在。快速開發(fā),降低開發(fā)成本。開發(fā)工具使用PyCharm。同樣為了降低開發(fā)成本,數(shù)據(jù)庫選用MYSQL這個體積小,速度快,開放源碼的數(shù)據(jù)庫來支撐整個系統(tǒng)較為符合當下的開發(fā)需要。最終實現(xiàn)本系統(tǒng)的實現(xiàn)。關鍵詞:酒店管理系統(tǒng),django,ORM,bootstrap,MYSQL

Hotel(TongFengGu)datamanagementsystemdesignandrealizationsummary:thedevelopmentofnetworktechnologyhaspenetratedintoallaspectsofenterprisemanagement,isamajorenterprisemanagementmoreandmorerelyontheInternet,especiallywithchina'ssocialandeconomicdevelopment,therapiddevelopmentofinformation,sothatthemanagementburdenofenterprisesmoreandmoreheavy,thehotelindustrymanagementisthesame.Thehotelindustryishighlydeveloped,itsmanagementbecomesparticularlyimportant,efficientmanagementcanimprovetheefficiencyofthehotel.Butnowmosthotelmanagementisstillstuckinmanualmanagement,suchamodelallowsemployeestoneedalotoftimeandefforttodealwithavarietyofcustomerneedsorcomplaints.Long-termsuchamanagementsystemwillmakethehotelatriskofclosure,soexcellentsystemequipmenttoprovideasophisticateduserexperience,sothathotelmanagers,hotelcustomers,frontdeskprofessionalsandotherpeopleinandoutofthehoteltoexperiencetheunprecedentedqualityservicebroughtaboutbythesystemhasbecomeanimportanttestofthissystemdesign.Therearethousandsofhotelmanagementsystemsonthemarket,theimplementationofthesystemisalsoavarietyoftechnologies,thesystemusingDjangoframeworktechnologydevelopment,DjangoframeworkisapythondevelopedapowerfulandfreeopensourceWebframeworktechnology.Thehighlightofthetechnologyisthatprogramdeveloperscaneasilycompletemostofthefunctionalityofacompletesystemwithcleanandconcisecode.Rapiddevelopmenttoreducedevelopmentcosts.DevelopmenttoolsusePyCharm.Alsoinordertoreducedevelopmentcosts,thedatabaseselectedMYSQLthissmallsize,fast,opensourcedatabasetosupporttheentiresystemmoreinlinewiththecurrentdevelopmentneeds.Thefinalrealizationofthesystem.Keywords:HotelManagementSystem,django,ORM,bootstrap,MYSQL目錄第1章緒論 緒論課題研究的背景一般而言傳統(tǒng)酒店管理系統(tǒng)是通過人機交互來實現(xiàn)的MIS(ManagementInformationSystems管理信息系統(tǒng),簡稱MIS)系統(tǒng)。對于酒店的計算機監(jiān)管體系最早可以追溯到1963年美國一間著名的酒店希爾頓酒店安裝了第一臺用于酒店客房自動化管理的小型計算機。由這一刻開始,現(xiàn)代化管理技術運用開始運于酒店行業(yè),并到八十年代國外的這項技術體系就基本完善成型。而國內(nèi)對這方面的研究起步較晚,直到八十年代初期才開始研究實踐,并對這方面的技術大量引進,到九十年代中后才趨于完善。人所共知,從改革開放以來,中國經(jīng)濟建設取得了舉世矚目的輝煌成績。跟隨著我國社會經(jīng)濟的進步,中國的各個行業(yè)百花齊放,各行各業(yè)都開始快速發(fā)展,其中酒店行業(yè)更是如此。不斷發(fā)展的社會經(jīng)濟帶動居民的經(jīng)濟水平,而消費水平亦是不斷提高,人們對高質(zhì)量生活的追求亦逐漸提高,對于酒店的服務體驗的要求也越來越高。但人們對酒店的期望與目前酒店的服務質(zhì)量卻形成很大的反差,大多數(shù)酒店在管理上卻還是傳統(tǒng)的由酒店人員手工去操作完成,大部分三星以下的酒店還沒有采用電腦管理系統(tǒng),造成酒店日常管理事務工作都需要大量的人員來操作。這使得酒店服務效率變低,管理困難,占用大量的資源不說,客戶的體驗還差。這對酒店長久發(fā)展十分不利,甚至會因無法適應如今的趨勢而面臨淘汰。高效率、全面的管理系統(tǒng)對于酒店的服務效率,客戶的滿意度都有極大的提高,同時也可以降低管理成本,這在酒店行業(yè)競爭如此激烈的今天,將成為酒店的重要核心競爭力之一,使得酒店能有更加長遠的發(fā)展。所以使用現(xiàn)如今先進的高效率的技術開發(fā)一套完整的全面的管理系統(tǒng)是十分必要的。 課題研究的意義傳統(tǒng)的MIS人機交互界面確實對酒店管理系統(tǒng)帶來很大的便捷,但是國內(nèi)對于酒店管理系統(tǒng)的開發(fā)研究卻是參差不齊。其開發(fā)周期長,開發(fā)成本高。這并不適合當下的軟件開發(fā)市場。本課題研究是基于Django框架所開發(fā)的酒店管理系統(tǒng),其優(yōu)點在于快速開發(fā)、功能完善。這使得開發(fā)成本成倍降低的同時開發(fā)功能還強大。系統(tǒng)開發(fā)之后對于酒店也有較大的便捷。系統(tǒng)管理減輕員工對于日常事務的繁瑣的統(tǒng)計,這樣手工的統(tǒng)計極容易出錯效率還低。比如系統(tǒng)其中的模塊是對于酒店數(shù)據(jù)可視化頁面的開發(fā),其開發(fā)意義在于酒店日常數(shù)據(jù)進行系統(tǒng)的自動分析統(tǒng)計,并展示在頁面中,使得酒店管理層一目了然,這便于管理層的分析與決策,進而影響酒店的營銷。酒店也可減少這些繁瑣的工作,專注提高服務質(zhì)量,良性循環(huán)產(chǎn)生經(jīng)濟效益。課題研究方法和內(nèi)容研究方法文獻研究法,根據(jù)論文的研究目的以及課題需要,通過查閱與論文相關的文獻來獲得相關資料,從而全面、客觀、正確地了解所要研究的問題,找出事物的本質(zhì)屬性,從中發(fā)現(xiàn)問題。研究內(nèi)容本論文一共分為五個部分,具體內(nèi)容安排如下:(1)緒論。主要對以對酒店管理系統(tǒng)國外內(nèi)的發(fā)展背景,及國內(nèi)酒店系統(tǒng)技術、酒店系統(tǒng)市場進行闡述,從開發(fā)角度和酒店營銷角度分析本系統(tǒng)研究意義。(2)系統(tǒng)需求分析。主要對酒店管理系統(tǒng)進行全方面的分析,包括對用戶的需求分析,對系統(tǒng)的經(jīng)濟可行性、技術可行性等方面進行研究分析,供后面對系統(tǒng)的設計提供重要資料。(3)系統(tǒng)設計。主要描述系統(tǒng)開發(fā)環(huán)境及對系統(tǒng)功能結構、數(shù)據(jù)庫結構的設計,并使用Django開發(fā)框架其強大的功能對系統(tǒng)的開發(fā),設計并實現(xiàn)本系統(tǒng)的部分功能。(4)系統(tǒng)測試。主要描述系統(tǒng)運行環(huán)境的所需的硬件要求,系統(tǒng)測試的目的,測試方法,以及本系統(tǒng)主要采用何種測試方式對功能進行測試,以確保系統(tǒng)的準確運行。(5)結束語。系統(tǒng)需求分析可行性分析對酒店管理系統(tǒng)的可行性分析主要還得從市場需求、資源供應、開發(fā)環(huán)境影響、系統(tǒng)利潤空間等方向進行分析,從技術上進行研究和分析,從經(jīng)濟效益上進行預測。從中得出這個系統(tǒng)是否可以投入開發(fā)。下面從幾個方面進行可行性分析:(1)操作可行性:傳統(tǒng)的MIS人機交互系統(tǒng)大多采用C/S(Client-Server,也叫客戶機/服務器模式)架構進行應用開發(fā)。隨著互聯(lián)網(wǎng)的發(fā)展,C/S架構的操作局限性逐漸凸顯出來,其客戶端的維護需要復雜的技術支持。而B/S(Browser/Server,瀏覽器/服務器模式)架構模式其核心主要集中在服務器上,大大簡化了系統(tǒng)開發(fā)、維護跟使用。(2)技術可行性:本系統(tǒng)主要采用開發(fā)語言python選用當前最流行框架Django進行系統(tǒng)的相關開發(fā),數(shù)據(jù)庫選用MYSQL主流數(shù)據(jù)庫進行數(shù)據(jù)支撐,為系統(tǒng)的開發(fā)提供強有力的技術后盾。(3)經(jīng)濟可行性:本系統(tǒng)主要目的在于節(jié)省大量的人力財力花費在酒店的管理經(jīng)營上,員工可在系統(tǒng)上的進行操作,減少酒店不必要開支,同時可增加營業(yè)額,在經(jīng)濟可行性上并不會陷入窘境。(4)進度可行性:Django框架適合快速開發(fā),其開發(fā)優(yōu)勢大于其他Web框架,使得系統(tǒng)的開發(fā)周期大大縮短,這對于系統(tǒng)的開發(fā)進度的到保證,能在預期的時間內(nèi)高效的完成系統(tǒng)開發(fā)。用戶需求分析隨著社會的發(fā)展,客流量也隨著不斷增大,酒店管理人員希望系統(tǒng)可以減輕日常事務繁重的重復性工作,同時兼?zhèn)鋽?shù)據(jù)實時監(jiān)控,可實時看到日常所需信息。由于客流量增大酒店規(guī)模也在不斷擴大,要求不同員工能訪問的內(nèi)容不同,并提供員工日常的考勤打卡功能:(1)實時數(shù)據(jù)監(jiān)控:使用計算機可以一目了然看到日常相關數(shù)據(jù),如各部門經(jīng)理可實時看到當前酒店的營銷量,當晚酒店入住人數(shù)等信息。(2)實時房態(tài):前廳部可實時看到房間狀態(tài),前廳專員可通過系統(tǒng)幫顧客預訂房間,錄入顧客信息,同時可看到網(wǎng)上預約信息,并自動預約選中房型,等顧客到店后再一并錄入系統(tǒng)。(3)數(shù)據(jù)儲存:建立顧客信息表,錄入顧客基本信息,方便日后建立良好的客戶關系。(4)密碼設置:使得酒店管理用戶可通過登錄權限登錄進入系統(tǒng),避免非本酒店人員進入本系統(tǒng)。(5)權限設置:設置用戶權限,可根據(jù)所處部門賦權相應的操作權限。(6)數(shù)據(jù)查詢:要求可以通過搜索框搜索房間。(7)員工處理:可查看員工基本信息,并查看員工考勤打卡信息,并以此輔助結算工資。系統(tǒng)功能需求分析(1)網(wǎng)上預訂功能:主要目的是為了提高酒店的開房率,提高酒店營業(yè)額,功能包括網(wǎng)頁預訂查詢,房型已滿頁面反饋,預約記錄生成,預訂確認,預訂記錄維護等功能。(2)前廳接待功能:主要目的是可以快速為顧客檢索到合適房型,為客戶開好房間,錄入顧客基本信息,房間多名顧客錄入刪除功能,前廳部主頁面可快速看到當前可入住房型,及當前不可用房間。(3)員工考勤管理:主要功能可以知道員工考勤記錄,全體員工基本信息,部分員工無登錄系統(tǒng)權限。(4)主管主系統(tǒng)管理:主要功能點在于酒店日常數(shù)據(jù)可視化,對于酒店日常數(shù)據(jù)可實時的呈現(xiàn)在頁面上。

系統(tǒng)設計開發(fā)環(huán)境搭建安裝Python3.7.3環(huán)境安裝:Python是一種跨平臺的計算機程序設計語言。是一種面向?qū)ο蟮膭討B(tài)類型語言,故而需要安裝python的環(huán)境,官網(wǎng)下載與自己系統(tǒng)對應的版本,本系統(tǒng)選用Python3.7.3版本進行安裝。測試:安裝完成,打開運行窗口(windows系統(tǒng)操作系統(tǒng)用win鍵+R快捷打開運行窗口,在里面輸入命令提示符“cmd”)輸入python后回車,如出現(xiàn)python版本號,則代表環(huán)境搭建成功,如不成功,則需要配置電腦的環(huán)境變量。系統(tǒng)開發(fā)框架搭建本系統(tǒng)開發(fā)工具選用pycharm作為系統(tǒng)開發(fā)工具,框架的搭建需下載Django壓縮包,Django是用Python開發(fā)的一個免費開源的Web框架,可以用于快速搭建高性能,優(yōu)雅的網(wǎng)站!采用了MVC的框架模式(模型M,視圖V和控制器C,也可以稱為MVT模式,模型M,視圖V,模板T。)框架安裝完畢后需測試。pip下載Django框架執(zhí)行pipinstalldjango執(zhí)行步驟之后打開pycharm在“Terminal”測試是否安裝完畢,執(zhí)行“piplist”測試是否安裝django框架,如圖3-1所示:圖3-1Terminal輸入框Django項目相關文件分別有:admin:對應應用后臺管理配置文件。apps:對應應用的配置文件。models:數(shù)據(jù)模塊用于設計數(shù)據(jù)庫等。tests:編寫測試腳本。views:視圖層,直接和瀏覽器進行交互。系統(tǒng)功能結構設計如圖3-2系統(tǒng)結構圖所示,本系統(tǒng)功能模塊主要實現(xiàn)三大系統(tǒng)模塊:數(shù)據(jù)可視化頁面、前廳接待頁面、員工部門頁面。其中前廳接待又由前廳接待及網(wǎng)上預約的功能。員工部門包括員工部門信息、員工考勤信息。圖3-2系統(tǒng)結構圖數(shù)據(jù)庫設計在數(shù)據(jù)庫開發(fā)中,Django框架擁有強大的數(shù)據(jù)庫功能:ORM(Object-RelationalMapping“對象-關系映射”),它將對數(shù)據(jù)庫的操作轉(zhuǎn)換為對類屬性和方法的操作,使得開發(fā)人員可以不用編寫SQL語句,這樣做有一個好處就是市場上的各種關系型數(shù)據(jù)庫雖然在語法上都遵循SQL編寫準則到在細節(jié)上還有些差異,這使得系統(tǒng)開發(fā)在數(shù)據(jù)遷移上需花費很大的成本,而ORM完美的避開這樣的問題,并且ORM默認防止SQL注入(一種流行的攻擊方法),這對系統(tǒng)的安全提供了一層保護措施。數(shù)據(jù)庫設計:根據(jù)需求對本系統(tǒng)的數(shù)據(jù)庫進行分析開發(fā),并建立了十張當前系統(tǒng)部分功能實現(xiàn)的相關數(shù)據(jù)表,分別為:員工信息表、工資信息表、考勤記錄信息表、部門信息表、顧客登記信息表、住宿信息表、客房信息表、預約房間信息表、款項記錄信息表等。員工信息表主要存儲員工基本信息,表結構如表3-1員工信息表所示。表3-1員工信息表(Employee)字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵name姓名Varchar(50)NOTNULLusername賬號Varchar(50)NULLpassword密碼Varchar(50)NULLsex性別Varchar(4)NULLtel電話Varchar(20)NULLage年齡IntNULLlength_of_service工齡IntNULLlevel級別IntNULLposition職務Varchar(20)NULLremarks備注Varchar(2000)NULLdept_id外鍵:部門idForeignKeyNULL部門編號外鍵工資信息表存儲員工發(fā)放工資信息并關聯(lián)員工表,外鍵為員工編號。結構如表3-2工資信息表所示。表3-2工資信息表(salary);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵basic_wage基本工資Varchar(50)NOTNULLattendance_wage全勤工資Varchar(50)NULLreal_wages實際工資Varchar(50)NULLattendance出勤Varchar(4)NULLsalary_date發(fā)放工資時間Varchar(20)NULLremarks備注Varchar(2000)NULLemp_id外鍵:員工idForeignKeyNULL員工編號外鍵考勤表主要記錄員工打卡信息,并關聯(lián)員工表。如表3-3考勤記錄信息表所示。表3-3考勤記錄信息表(attendance);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵att_datetime打卡時間Varchar(50)NOTNULLremarks備注Varchar(2000)NULLemp_id外鍵:員工idForeignKeyNULL員工編號外鍵部門表存儲酒店各部門信息,如表3-4部門信息表所示。表3-4部門信息表(department);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵dept_name部門名稱Varchar(50)NOTNULLremarks備注Varchar(2000)NULL顧客登記信息表登記顧客信息,并存儲在數(shù)據(jù)庫中,如表3-5顧客登記信息表所示。表3-5顧客登記信息表(customer);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵name姓名Varchar(50)NOTNULLsexe性別Varchar(50)NULLid_card證件號碼Varchar(50)NULLzz_type證件類型Varchar(4)NULLmember_level會員級別Varchar(20)NULLremarks備注Varchar(2000)NULLdiscount_rule_id會員等級外鍵ForeignKeyNULL會員等級外鍵住宿信息表存儲住宿信息,為減少冗余數(shù)據(jù)而開設的表,如表3-6住宿信息表所示。表3-6住宿信息表(accommodation);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵start_date住宿日期dataNOTNULL由于開發(fā)需要特設字段start_time住宿開始時間datatimeNOTNULLend_time住宿結束時間datatimeNULLremarks備注Varchar(2000)NULLroom_id房間idForeignKeyNOTNULL房間表外鍵cust_id顧客idForeignKeyNOTNULL顧客表外鍵客房信息表存儲酒店客房信息,如表3-7客房信息表所示。表3-7客房信息表(room)字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵room_number客房號Varchar(20)NULLcategory類別Varchar(20)NULLlocation位罝Varchar(20)NULLcharge收費標準Varchar(20)NULLstatus狀態(tài)Varchar(20)NULLremarks備注Varchar(2000)NULL預約房間信息表網(wǎng)上預約房間時存儲數(shù)據(jù)的數(shù)據(jù)表,并與房間表關聯(lián),外鍵為房間表id,如表3-8預約房間信息表所示。表3-8預約房間信息表(reservation);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵name用戶名Varchar(20)NULLid_card證件號碼Varchar(20)NULLstart_date住宿日期dataNOTNULL開發(fā)需要特設字段start_time始定時間Varchar(20)NULLend_time結束時間Varchar(20)NULLremarks備注Varchar(2000)NULLroom_id房間表主鍵ForeignKeyNOTNULL房間表外鍵款項記錄信息表對酒店房間住宿收款信息進行存儲,并關聯(lián)顧客表,如表3-9款項記錄信息表所示。表3-9款項記錄信息表(payment);字段名注釋數(shù)據(jù)類型是否為空說明id主鍵primarykeyNOTNULL主鍵room_id房間號Varchar(20)NULLusage_time收款時間datetimeNULLreceivables應收款Varchar(20)NULLactual_collection實際收款Varchar(20)NULLremarks備注Varchar(2000)NOTNULLcust_id顧客idForeignKeyNOTNULL顧客表外鍵系統(tǒng)部分功能開發(fā)。系統(tǒng)登錄實現(xiàn)用戶登錄功能,如圖3-3登錄界面所示。圖3-3登錄界面登錄功能python的裝飾器其功能在于可以在不改變源代碼的情況下增加額外的新功能。譬如系統(tǒng)的登錄驗證,如果不加裝飾器那么就需要修改大量的代碼來實現(xiàn)功能,同時不利于修改。進入系統(tǒng)時,酒店管理系統(tǒng)會通過裝飾器check_login(f)對頁面進行用戶是否有登陸狀態(tài)的檢測,如檢測到用戶未登錄則自動跳轉(zhuǎn)到登錄頁面進行登錄;此時酒店員工通過輸入正確的用戶名和密碼提交到后臺調(diào)用login_post接口進行驗證,如果輸入信息不正確,系統(tǒng)會提示用戶名或密碼錯誤,同時通過服務端保存session數(shù)據(jù)進行登錄識別,判斷是否已經(jīng)登錄系統(tǒng)。核心代碼如下:defcheck_login(f):#登錄驗證

@wraps(f)

definner(request,*arg,**kwargs):

is_login=request.session.get('is_login')

ifis_login=="1":

returnf(request,*arg,**kwargs)

else:

returnredirect("/login")

returninner@csrf_exempt#增加裝飾器,作用是跳過csrf中間件的保護

deflogin_post(request):#登錄驗證

ifrequest.method=="POST":

username=request.POST.get('username')

password=request.POST.get('password')

user=models.employee.objects.filter(username=username,password=password)

ifuser:#登錄成功

#1,生成特殊字符串

#2,這個字符串當成key,此key在數(shù)據(jù)庫的session表(在數(shù)據(jù)庫存中一個表名是session的表)中對應一個value

#3,在響應中,用cookies保存這個key,(即向瀏覽器寫一個cookie,此cookies的值即是這個key特殊字符)

request.session['is_login']='1'#這個session是用于后面訪問每個頁面(即調(diào)用每個視圖函數(shù)時要用到,即判斷是否已經(jīng)登錄,用此判斷)

#說明:如果需要在頁面上顯示出來的用戶信息太多(有時還有積分,姓名,年齡等信息),所以我們可以只用session保存user_id

request.session['user_id']=user[0].id

returnJsonResponse("SUCCESS",safe=False)

returnJsonResponse("ERROR",safe=False)

else:

#如果是GET請求,就說明是用戶剛開始登錄,使用URL直接進入登錄頁面的

returnrender(request,'login.html')權限管理當酒店員工使用不同部門賬號時,后臺通過“request.session.get('user_id')”獲取session中的信息,并通過與數(shù)據(jù)庫中存儲的權限信息進行比對后,返回相應的頁面信息,頁面則自動跳轉(zhuǎn)到相應部門的頁面。@check_login#登錄驗證裝飾器,作用在于瀏覽管理系統(tǒng)是檢測是否已經(jīng)登錄

defmanager_view(request):#主管頁面主系統(tǒng)頁面

session=get_session(request.session.get('user_id'))

name=session[0].name

level=session[0].level

iflevel=='1':#返回主管界面

returnrender(request,'manager.html',{"name":name,"level":level})

eliflevel=='2':#返回前廳部界面

returnrender(request,'lobby/room.html',{"name":name,"level":level})

eliflevel=='3':#返回人事部界面

returnrender(request,'hr/dept.html',{"name":name,"level":level})退出登錄當員工點擊退出登錄了,頁面發(fā)起ajax請求發(fā)送到后臺調(diào)用“l(fā)ogin_out”退出登錄,并清空服務端中的session,并返回200作為退出成功標志,前端自動刷新頁面,此時又會觸發(fā)裝飾器并檢索服務器中的session,檢測是否登錄,以此實現(xiàn)退出登錄效果,核心代碼如下:deflogin_out(request):#退出登錄,清空服務端中的session

ifrequest.method=="POST":

request.session.flush()

returnJsonResponse({"status":200})主界面如圖3-4界面所示,系統(tǒng)主界面實現(xiàn)了實時數(shù)據(jù)監(jiān)控,對當天客戶入住情況,房間預訂,散客開單,酒店營業(yè)數(shù)據(jù)展示在界面上,并在系統(tǒng)主界面的左邊放置導航欄,包括前廳管理、人事管理。圖3-4界面前廳部管理開發(fā)房間管理前廳專員可通過管理系統(tǒng)實時讀取到當前酒店所剩余房間,同時跟新目前已經(jīng)使用房間,方便前廳專員對客戶的反饋,同時當顧客開房入住的時候,可在系統(tǒng)頁面直接預訂開房。如圖3-5房間管理所示圖3-5房間管理核心代碼:defroom_list_state(request):#房間列表接口

try:

ifrequest.method=="POST":

datalist=[]

condition=request.POST.get('condition')

ifcondition=="1":

room_list=models.room.objects.filter(status="空房已清潔")

else:

room_list=models.room.objects.exclude(status="空房已清潔")

fordateinroom_list:

datalist.append({

"id":date.id,#房間id

"room_number":date.room_number,#客房編號

'category':date.category,#客房類別

'charge':date.charge,#客房收費標準

'location':date.location,#客房位置

'status':date.status,#房間狀態(tài)

})

returnHttpResponse(json.dumps(datalist))

else:

returnHttpResponse(f'非法請求方式')

exceptExceptionase:

returnHttpResponse(e.args)房間預訂點擊預約房間后,會跳轉(zhuǎn)到房間頁面,前廳專員可通過系統(tǒng)錄入顧客信息并添加到當晚入住房間列表中。同時信息錄入失敗或讀取錯誤,可刪除重新錄入。頁面展示如圖3-6添加顧客頁面所示圖3-6添加顧客頁面核心代碼:@csrf_exempt#增加裝飾器,作用是跳過csrf中間件的保護

defcustomer_post(request):#房間新增顧客入住

try:

ifrequest.method=="POST":

room_number=request.POST.get('room_number')

name=request.POST.get('name')

sex=request.POST.get('sex')

id_card=request.POST.get('id_card')

zz_type=request.POST.get('zz_type')

customer=models.customer(#顧客信息創(chuàng)建

name=name,sex=sex,id_card=id_card,

zz_type=zz_type,discount_rule_id=1,

member_level="青銅會員"

)

customer.save()#顧客信息保存

cust_id=models.customer.objects.get(id_card=id_card).id

room_id=models.room.objects.get(room_number=room_number).id

accommodation=models.accommodation(#訂單生成

cust_id=cust_id,

room_id=room_id,

start_time=datetime.datetime.now()

)

accommodation.save()

room_id_s=models.room.objects.get(room_number=room_number)

room_id_s.status='住房未清潔'

room_id_s.save()

ifmodels.reservation.objects.filter(room_id=room_id).count()!=0:

reservation=models.reservation.objects.get(room_id=room_id)

reservation.end_time=datetime.datetime.now()

reservation.save()

returnJsonResponse({'status':200})

else:

returnHttpResponse(f'非法請求方式')

exceptExceptionase:

returnHttpResponse(e.args)預約接待系統(tǒng)開設對外開放網(wǎng)頁提供網(wǎng)上預約服務,提高營業(yè)額及酒店曝光率,并在前廳頁面接收預約信息,酒店將整晚預留該房間,顧客到酒店后再一并錄入入住相關信息到酒店系統(tǒng)中,辦理入住。如圖3-7預訂訂單所示。圖3-7預訂訂單人事部管理開發(fā)員工信息:系統(tǒng)頁面可顯示酒店所有員工基本信息,并可關注員工相關考勤以供月底工資結算。員工考勤:可直接直觀看到酒店管理系統(tǒng)所有員工當月的大致考勤情況。

系統(tǒng)測試系統(tǒng)運行環(huán)境要求:運行環(huán)境:為滿足系統(tǒng)運行需要,對于服務器部署的硬件設備及操作系統(tǒng)有一定要求,表4-1硬件要求為實現(xiàn)系統(tǒng)運行對硬件要求的最低配置,建議使用當前中等或以上計算機配置。表4-1硬件要求CPU要求在PⅢ以上內(nèi)存512MB及其以上硬盤20GB及其以上光驅(qū)無要求軟驅(qū)無要求顯示器1024*768(效果最佳)其他計算機設備網(wǎng)卡等聯(lián)網(wǎng)設備服務器要求:WindowsXP以上操作系統(tǒng),裝IE6.0以上版本的瀏覽器、IIS6.0以上版本信息管理器、MYSQL數(shù)據(jù)庫。開發(fā)環(huán)境:操作環(huán)境:WindowsXP開發(fā)工具:JetBrainsPyCharm2018.3.5數(shù)據(jù)庫:MySQL數(shù)據(jù)庫測試目的測試的目的確保項目在正式上線之前,找出項目中出現(xiàn)的BUG,并排除修復BUG,從而提高項目的質(zhì)量,盡可能的防止項目在正式上線之后出現(xiàn)重大錯誤,造成經(jīng)濟上的損失。測試方法程序測試的主要方法分為兩大類,白盒測試和黑盒測試。白盒測試:也稱透明盒測試或基于代碼的測試,白盒指的是透明化軟件項目的邏輯結構,對于其內(nèi)部的運作流程都能清晰可見,并窮舉邏輯路徑。其工作量巨大且枯燥,但卻十分重要,它可以從代碼的角度去發(fā)現(xiàn)項目內(nèi)部源碼的算法、溢出、路徑、和條件等方面進行排查錯誤,并加以修正。黑盒測試:也稱功能測試,黑盒指的是將測試模塊當成不能打開的黑盒子,通過窮舉輸入的測試方式,驗證程序的輸入輸出結果。測試人員可以在不需要知道源碼的情況下對系統(tǒng)的進行測試,黑盒測試更偏重與項目功能的完善。兩種測試方法各有優(yōu)點,在測試過程中兩種方法經(jīng)常交叉使用,本次測試工作中主要使用的是黑盒測試方法。功能測試本酒店管理系統(tǒng)主要測試功能:登錄驗證、頁面跳轉(zhuǎn)、圖片信息顯示,房間預約功能、顧客添加功能等進行測試。其目的在于檢驗功能是否實現(xiàn),通過窮舉輸入測試檢驗功能接口是否能正確接收輸入并返回正確的結果。從用戶的角度出發(fā)測試出每個功能在正常使用的情況下是否達到用戶預期的要求。如表4-2測試用例表所示。表4-2測試用例表測試編號操作預期結果實際結果1用戶使用三種不同權限的賬號進行登錄驗證登陸成功并跳轉(zhuǎn)到相應權限的對應的頁面測試成功,系統(tǒng)根據(jù)賬號權限不同跳轉(zhuǎn)至各自頁面2點擊左側(cè)導航欄進行頁面跳轉(zhuǎn)頁面跳轉(zhuǎn)成功顯示頁面信息測試跳轉(zhuǎn)成功3通過網(wǎng)頁預訂房間系統(tǒng)對外開放頁面預約酒店房間并預約成功測試預約成功4酒店員工進行顧客添加(由于沒有相關的讀取身份證自動添加人員信息設備,在頁面寫了個自動生成顧客數(shù)據(jù)的小按鈕,會在系統(tǒng)完成發(fā)布后刪除)酒店房間添加錄入顧客信息,并成功錄入房間當晚的入住客戶列表中測試添加成功5實時房態(tài)頁面點擊房間進行房間預約操作頁面跳轉(zhuǎn)到對應的房間頁面并顯示對應房間圖片、房間基本信息,跳轉(zhuǎn)成功,并顯示對應房間圖片和基本信息6酒店員工通過搜索框輸入搜索信息查詢房間(如輸入:豪華)搜索“豪華”頁面模糊搜索到“豪華雙人間”、“豪華大床房”兩種房型列表測試成功7點擊顧客列表“刪除”按鈕,刪除顧客刪除成功,然后再重新錄入測試刪除成功8退出登錄退出系統(tǒng),并返回登錄界面返回成功9退出登錄前復制任意鏈接后退出,后進行訪問之前復制的鏈接,以測試登錄是否真的退出退出系統(tǒng)后,不得訪問酒店管理系統(tǒng),并直接跳轉(zhuǎn)至登錄界面,進行重新登錄測試成功,退出登錄不得繼續(xù)訪問管理系統(tǒng)任意頁面

結束語本系統(tǒng)遵循一般軟件的開發(fā)流程,即先通過網(wǎng)絡資源等各種途徑對酒店管理業(yè)務相關知識學習,同時了解到國內(nèi)對酒店管理系統(tǒng)的軟件市場還有很多空間,并擬定用戶需求,對傳統(tǒng)的酒店管理系統(tǒng)進行優(yōu)化,確定出需要完成的系統(tǒng)功能,并完成系統(tǒng)數(shù)據(jù)庫設計、功能開發(fā)。同時對系統(tǒng)功能進行測試。本系統(tǒng)開發(fā)框架使用后端采用基于Django框架結合BootStrap前端框架、javascript腳本編程、Ajax核心等先進技術,使用JetBrainsPyCharm2018.3.5開發(fā)工具進行開發(fā),基本功能都已實現(xiàn),操作簡單、方便。但在性能上還潛在不足,比如Django框架的ORM雖然功能強大,但其底層依然是將編寫的方法重新轉(zhuǎn)為SQL進行數(shù)據(jù)庫操作,這對系統(tǒng)的性能有所犧牲,這種缺陷在客流量大的情況下尤為明顯。幾個月的畢業(yè)設計時光,說長也不長,說短也不短,我遇到過不同的挫折與磨難,同時也在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論