国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Django的O2O家庭酒店商務平臺

2016-02-13 05:58:18夏亞麗戴志濤
軟件 2016年12期
關鍵詞:房東消息數(shù)據(jù)庫

夏亞麗,戴志濤

(北京郵電大學計算機學院,北京 100876)

(School of Computer Science, Beijing University of Posts and Telecommunications, Beijing 100876)

基于Django的O2O家庭酒店商務平臺

夏亞麗,戴志濤

(北京郵電大學計算機學院,北京 100876)

隨著互聯(lián)網(wǎng)的發(fā)展,電子商務模式除了原有的B2B,B2C,C2C商業(yè)模式之外,近來一種新型的消費模式020已快速在市場上發(fā)展起來。本文設計和完成了基于Django的o2o家庭酒店商務平臺,介紹了在PyCharm開發(fā)平臺下,利用Django,MySQL,Bootstrap,jQuery技術開發(fā)該商務平臺。本文主要討論了系統(tǒng)所涉及的相關技術,設計的思想,系統(tǒng)各功能模塊的設計和相關模塊的實現(xiàn)。家庭酒店即普通住戶,在滿足自己住宿的同時,家里有多余的住宿空間供游客或者出差人員住宿,這在一定程度上為游客及出差人員提供了便利,同時住戶也能盈利。家庭酒店突破了原有的酒店模式,創(chuàng)新了互聯(lián)網(wǎng)時代酒店租住的方式。

家庭酒店商務平臺;Django;Python;O2O

本文著錄格式:夏亞麗,戴志濤. 基于Django的O2O家庭酒店商務平臺[J]. 軟件,2016,37(12):121-128

(School of Computer Science, Beijing University of Posts and Telecommunications, Beijing 100876)

0 引言

隨著信息科技的不斷發(fā)展,人們的生活節(jié)奏也不斷加快,越來越多人通過旅游放松自己,國內游客在外出旅游的時候多數(shù)選擇酒店住宿,但是更多的時候游客希望可以深入的了解當?shù)氐娘L土人情,如果能夠借宿到原駐居民家里,游客在休閑度假的過程中就能夠親身的體會當?shù)氐拿褡逦幕吧罘绞剑挥绕鋵τ趪庥慰?,能更加真切的體會到當?shù)氐拿褡逄厣吧盍晳T。而且在平時工作的過程中,對于出差比較平凡的人,普遍有這樣一種體會,自己找到的酒店在地理位置上不能夠滿足自己的需求,如果有更多的選擇,對他們來說也會更好。

Django是用python語言編寫,基于MVC設計模式的web開發(fā)框架。它可以使web開發(fā)工作簡捷而又高效。使用Django框架開發(fā)互聯(lián)網(wǎng)應用,開發(fā)者能夠以最小的代價構建維護高質量的web應用[1]。

基于以上幾點,本文提出了一種基于Django的o2o家庭酒店商務平臺。本文利用O2O平臺構建的家庭酒店網(wǎng)站,是一個介于游客與房東之間的一個平臺,游客可以選擇異于傳統(tǒng)酒店的房屋,而居民也能把自己閑置的房屋放在網(wǎng)站上出租,實現(xiàn)雙贏的局面[2]。

1 家庭酒店商務平臺的挑戰(zhàn)與機遇

1.1 家庭酒店商務平臺的挑戰(zhàn)

其實家庭酒店對于國外來講已經不算是什么新鮮詞了,國外早就有類似這樣的網(wǎng)站,并且已經得到了廣大用戶的認可,最有名的就是美國的Airbnb短租民宿網(wǎng)站。但是在中國,雖然也有一些類似的家庭短租網(wǎng)站,但并沒有得到廣大用戶的認可,其中的原因跟中國的文化以及市場有著很大的聯(lián)系。從運營的角度講,家庭酒店首先面臨的挑戰(zhàn)就是安全與信任,因為在國外,每個人都有完善的信用體系,網(wǎng)站可以用這個方式減少安全與信任問題,但是在國內,我們并沒有建立個人信用體系,所以安全和信任是我們整個平臺的一個難題,加之類似網(wǎng)約車等負面新聞的爆出,讓用戶對家庭酒店更加缺乏安全感。從房源和用戶的角度講,由于近兩年中國房價漲幅特別大,尤其在北京,上海,深圳等一線城市,許多年輕人都買不起房子,大家都是合租的,加之大城市的人又非常密集,所以房源緊張也是在所難免。所以對于家庭酒店的推行來說還是非常有壓力和挑戰(zhàn)的。

1.2 家庭酒店商務平臺的機遇

家庭酒店就像現(xiàn)在國內的網(wǎng)約車一樣,雖然前期可能會有很多的問題,但是隨著國家政策的制定和人們生活消費水平的提升,肯定也會是一個趨勢,加之人們的生活水平越來越高,外出旅游已經是一個趨勢,家庭酒店對外出旅游的人來說是一個很好的選擇,能夠更加深入的了解到當?shù)氐娘L土人情,獲得更多的旅游資訊。所以相信不久的將來,這個領域肯定也會發(fā)展起來。

2 相關技術介紹

2.1 Django框架介紹

Django是Python最著名的Web框架,有很多知名的網(wǎng)站都用它來開發(fā)。因為它有很多的優(yōu)點,免費開源,敏捷開發(fā),類似mvc的架構。為什么說類似mvc呢?是因為Django采用的是mtv的架構,即模型(Model),模版(Template)和視圖(View)。這里的Model與MVC中的Model相同,Templates和View加起來相當于mvc中的View,而mvc中的Controller由Django的URLconf單獨實現(xiàn)[3][4]。

基于這樣的設計,Django有如下核心組件:

(1)對象關系映射(ORM,object-relational mapping)

ORM將關系型數(shù)據(jù)庫中的數(shù)據(jù)映射為程序中的對象,在處理數(shù)據(jù)時對于不同的數(shù)據(jù)庫我們也不需要寫不同的SQL語句,只要用Python函數(shù)就可以處理。雖然Django為你提供了一個簡單易用的數(shù)據(jù)庫API,但如果你喜歡用原始的SQL語句,一樣可以使用。

(2)自動化的后臺管理界面

這是Django自帶的后臺管理界面,它可以靈活的管理網(wǎng)站數(shù)據(jù)。

(3)表單處理

這是Django的一個特性,可以從數(shù)據(jù)模型直接生成相應的表單,同時自帶對表單的有效性檢驗。

(4)模版系統(tǒng)

Django模版系統(tǒng)含有很多內置的tags和filters,可以直接使用,同時Django模版具有繼承性,對于相同的頁面內容只需要寫一個html頁面就行。

(5)URLconf

URLconf相當于mvc中的Controller,我們可以自己設計URL,URLconf根據(jù)正則表達式來匹配相應的URL,再調用相應的處理函數(shù)。所以,我們可以根據(jù)自己的愛好設計URL,而且當URL改變時,不必修改對應的視圖處理函數(shù)[5]。

2.2 MySQL

MySQL數(shù)據(jù)庫是基于Linux操作系統(tǒng)開發(fā)出來的數(shù)據(jù)庫,MySQL數(shù)據(jù)庫因其體積小、速度快、并且是開放源碼的免費數(shù)據(jù)庫而受到中小企業(yè)的歡迎。MySQL有很多優(yōu)點,它是用C和C++編寫的,具有可移植性;為多種編程語言提供了API,包括Python在內;支持多線程,可以充分的利用CPU的資源;支持windows,Linux,Mac等多重操作系統(tǒng)??傊甅ySQL 數(shù)據(jù)庫基本滿足了本項目對于數(shù)據(jù)庫的需求,加之又是免費開源的,所以用它是再合適不過的[6]。

2.3 jQuery

jQuery是一個快速、簡潔的JavaScript框架,其設計的宗旨是寫最少的代碼做更多的事情。jQuery具有高效靈活的css選擇器,能夠快速獲取文檔元素;可對CSS選擇器進行擴展,擁有便捷的插件擴展機制和豐富的插件;可以提供漂亮的頁面動態(tài)效果;增強的事件處理;創(chuàng)建ajax無刷新頁面等特性。

2.4 Bootstrap

Bootstrap是目前最流行的前端框架之一,它由twitter的兩位工程師創(chuàng)建,基于html,css,less前端開發(fā)庫,提供了很多javascript和css的效果,內置了非常多的樣式,可以使前端開發(fā)工程師快速構建一個完整的網(wǎng)頁。Bootstrap具有以下吸引人們的特點:(1)強有力的css和jquery插件(2)多種多樣的預定義樣式表(3)靈活的響應式刪格系統(tǒng)。總之Bootstrap是一個非常靈活易用的前端框架,利用以上特點,再加上css,javascript,jquery選擇器就可以實現(xiàn)非常好看的效果,有效的提高了網(wǎng)站的開發(fā)速度。

3 系統(tǒng)整體架構

家庭酒店商務平臺主要劃分為數(shù)據(jù)模型層,視圖層和控制層。

數(shù)據(jù)模型層:建立對象和數(shù)據(jù)庫表的一一映射關系,實現(xiàn)數(shù)據(jù)表基本的增刪改查操作。

視圖層:Django中的視圖由view和template來實現(xiàn),主要負責顯示平臺的用戶界面。

控制層:控制層由Django的URLconf實現(xiàn),主要負責平臺內部的業(yè)務邏輯實現(xiàn)。

4 系統(tǒng)功能設計

4.1 系統(tǒng)結構

本系統(tǒng)是典型的B/S架構,分為三層:Frontend(前端),backend(后端),Database(數(shù)據(jù)庫)[7],系統(tǒng)結構圖如下圖1所示:

圖1 系統(tǒng)結構圖Fig.1 System Structure

Frontend(前端):用戶通過瀏覽器訪問網(wǎng)站進行酒店預覽等操作。所以前端是基于http,通過HTML,Javascript和CSS的組合呈現(xiàn)網(wǎng)頁,當然我們會用到前端的一些模版來快速構建前端頁面,像bootstrap等。

backend(后端):本系統(tǒng)是面向多用戶的系統(tǒng),首先要考慮的就是在多用戶高并發(fā)的情況下的運行穩(wěn)定性,因此我們考慮采用Nginx服務器來做負載均衡,同時啟動多個服務端,將其掛到Nginx上,當客戶端的請求過來時,首先請求的是Nginx服務器,Nginx通過自己的數(shù)據(jù)分發(fā)策略,隨機的選在一個server,轉發(fā)客戶端請求。對于不同的http請求處理方式也不同,如果是動態(tài)的http請求,Nginx就把請求交給uWSGI處理;如果是靜態(tài)的請求,就交給后端的Nginx Web服務器來處理。uWSGI作為Nginx與Django的中間件,主要對http請求進行解析,然后交給Django來處理。

Database(數(shù)據(jù)庫):前面提到Django的特性之一是它的ORM(對象數(shù)據(jù)映射),通過ORM方式控制底端的MySQL數(shù)據(jù)庫[8]。

4.2 系統(tǒng)用戶設計

家庭酒店商務平臺的用戶可以分為普通用戶和管理員用戶兩類,其中普通用戶又可以細分為房客和房東。

4.2.1 普通用戶

普通用戶可以通過郵箱或者電話在該網(wǎng)站進行注冊,注冊完成后用戶登錄網(wǎng)站可以進行相關的操作。如果用戶是房客的話可能會瀏覽網(wǎng)站的酒店,查看酒店的詳細信息以及進行后續(xù)的預訂等操作。如果用戶想出租自己的房源,成為房東的話,他可以點擊增加房源,然后填寫房源相關的信息,最后添加成功。這些操作都可以在個人中心中查看。

4.2.2 管理員用戶

管理員用戶包括了用戶管理,消息管理,酒店管理等操作。

4.3 系統(tǒng)功能模塊設計

系統(tǒng)功能模塊設計如下圖2所示。

下面從用戶方面介紹各個模塊的功能作用:

(1)普通用戶包括了房東和房客兩類用戶,其中房東的個人中心除了有自己的房東中心,也包括房客中心,因為每一個房東也可能在某一時間充當房客的角色。房東中心模塊包括了訂單管理,消息中心,我的評論,房源信息,收益中心,個人資料等子模塊。房客中心模塊包括我的訂單,消息中心,我的評論,個人資料等子模塊。

訂單管理主要是房東對自己所有的酒店訂單的管理,可以查看所有訂單,確認訂單等。

消息中心主要是管理房客和房東的消息對話。

圖2 功能模塊設計圖Fig.2 Function Module Design

我的評論主要是房東對房客的評論和房客對酒店整個環(huán)境及房東的評論。

房源信息主要是房東添加的所有在線租住的酒店的各種詳細信息。

收益中心是房東管理自己所獲得的房客支付的酒店的費用。

個人資料主要是管理自己的所有個人信息,包括電話,郵箱,身份證等私人信息。

(2)管理員用戶包括了用戶管理,消息管理和酒店管理。

用戶管理模塊主要是管理員對用戶信息的維護,主要包括對用戶的增刪改查等操作。

消息管理模塊主要是當有其它用戶發(fā)來消息時,用戶可以查看回復。

酒店管理模塊主要是管理員對酒店信息的維護,包括對酒店的增刪改查操作。

4.4 數(shù)據(jù)庫設計

系統(tǒng)后臺采用mysql數(shù)據(jù)庫,首先需要下載安裝MySqldb類庫,然后修改settings.py配置數(shù)據(jù)庫屬性,通過在項目目錄下執(zhí)行python manage.py dbshell命令來判斷數(shù)據(jù)庫是否連接成功。針對本項目核心的表有10張,數(shù)據(jù)庫設計及具體表結構如下圖3所示。

根據(jù)數(shù)據(jù)庫表結構創(chuàng)建對應的model,然后修改settings.py的配置來安裝模型,通過python manage.py validate 檢查模型的語法和邏輯是否正確,如果沒有出現(xiàn)錯誤則執(zhí)行python manage.py syncdb創(chuàng)建數(shù)據(jù)表。

說明:避免數(shù)據(jù)之間的刪除操作相互影響,在數(shù)據(jù)庫設計時沒有強制添加外鍵約束,只是邏輯上相互關聯(lián)。為了避免數(shù)據(jù)的丟失,盡量采用邏輯刪除,而非物理刪除。

4.5 界面設計

圖3 數(shù)據(jù)庫設計圖Fig.3 Database Design

對于一個網(wǎng)站來說,前端界面的顯示非常重要,因為這是離用戶最近的模塊,它的設計直接影響用戶體驗的好壞。本文采用的Django框架自帶了表單樣式,但是考慮到界面的美化效果,我們會將系統(tǒng)所有的表單在html頁面中重寫,結合前端技術html5,css,js等給用戶呈現(xiàn)動態(tài)交互的前端界面。Web性能也是前端設計考慮的一個重點,我們會在Django的基礎上構建新的web框架,融入ajax特性,大家都知道ajax是異步刷新頁面,就是在不刷新整個網(wǎng)頁的情況下進行更新數(shù)據(jù),這一特性的融入,再利用一些開源庫和自己開發(fā)的組件可以達到全面提升web性能的目的,從而可以帶給用戶較好的用戶體驗。

5 系統(tǒng)實現(xiàn)

家庭酒店平臺采用的是Django框架,主要包括普通用戶和管理員用戶兩個主要用戶角色,其中普通用戶又細分為房客和房東,在這里由于本文篇幅限制,主要簡單介紹一下用戶權限控制模塊的實現(xiàn)及其消息中心模塊的實現(xiàn)。

5.1 用戶權限控制

用戶權限可以分四部分:未注冊用戶,房客,房東。不同的身份擁有不同的權限。我們把不同權限下看到的操作叫做目錄。然后將所有的目錄都錄入到目錄表(或權限表)中,給他設置相應的目錄編碼、目錄名稱、是否為根目錄、父目錄編碼等信息。

未注冊用戶:當其打開本網(wǎng)站時,判斷其是否登錄,如果沒有登錄,則將未注冊用戶的目錄權限查出來,然后根據(jù)相應的目錄權限把相應的目錄名稱顯示給未注冊的用戶進行瀏覽操作。

房客:當未注冊用戶需要進行提交訂單、評論等操作時,提示用戶進行登錄操作,若用戶沒有賬戶則進行注冊操作,當該用戶注冊完成時,成為房客角色,將房客所擁有的所有目錄權限,分配給該用戶即將房客權限添加到該用戶權限表中。然后當用戶進行登錄操作時,查詢該用戶的用戶權限,根據(jù)查詢出來的權限列表顯示相應的目錄。

房東:當房客要發(fā)布房源信息時,提示該房客填寫相應的信息,比如真實姓名、身份證號、支付寶信息等。當這些信息校驗通過后,該房客將有房客身份轉換為房東身份,同樣將在該用戶的賬戶上追加房東所擁有的權限。

注意:未注冊的用戶在完成注冊之前是沒有房客權限的,比如:不能提交訂單,評論等;房客在發(fā)布房源時要填寫相應的信息,在信息填寫校驗完成之前是不能夠成為房東的,及不能擁有房東的權限,只有所有校驗通過之后,才能夠成為房東。

圖4 未注冊用戶主頁面Fig.4 Unregistered User Home Page

圖5 房客主頁面Fig.5 The Roomer Home Page

圖6 房東主頁面Fig.6 The Landlord Home Page

如下圖4為未注冊用戶訪問網(wǎng)站時的主頁面,圖5為房客登錄系統(tǒng)后顯示的主頁面,圖6為房東登錄系統(tǒng)后顯示的主頁面,從效果圖可以看出,未注冊用戶沒有任何子功能模塊,房客下面有房客中心的子功能模塊,而房東則既有房客中心的子功能模塊,又有房東中心的子功能模塊,這就是用戶權限控制模塊所實現(xiàn)的,不同的用戶對應不同的權限。

5.2 消息中心

消息系統(tǒng)是房東和房客溝通的橋梁,每一條消息都和一個User相關聯(lián),只有注冊登陸的用戶才有權限接收和發(fā)送消息,消息中心初始化時顯示用戶最近的聊天記錄。用Django和ajax實現(xiàn)這個模塊,首先在Django中的app中加入message應用,然后在消息應用的models中設置相關的消息字段;forms中主要實現(xiàn)接收消息的人的驗證,數(shù)據(jù)的保存等;url.py中設置發(fā)送消息,接收消息,查看消息,回復消息等;最后在view中實現(xiàn)url對應的def函數(shù)。發(fā)送消息用ajax,后臺完成消息的存儲。使用輪詢請求get新消息展示在消息中心。如下圖7是消息中心的原理圖,圖8是房客的消息中心效果圖。

6 小結

家庭酒店是一個新的酒店租賃模式,存在很多的機遇和挑戰(zhàn),本文在以中國這個大市場為前提的條件下,首先介紹了家庭酒店這個新型的酒店模式所面臨的機遇和挑戰(zhàn),介紹了基于Django的o2o模式的MTV軟件設計模型的關鍵技術和設計思想。詳細介紹了整個平臺所用的Django框架,MySQL數(shù)據(jù)庫,jQuery和bootstrap前端框架等技術,同時從系統(tǒng)結構,系統(tǒng)用戶設計,系統(tǒng)功能模塊設計,系統(tǒng)數(shù)據(jù)庫設計和界面設計給出了整個系統(tǒng)的功能設計,最后是系統(tǒng)相關模塊的實現(xiàn)。該平臺的實現(xiàn)是對現(xiàn)有傳統(tǒng)酒店模式的創(chuàng)新,不僅豐富了現(xiàn)有酒店的模式,從一定程度上也緩解了酒店房源的緊張,讓房客和房東通過該平臺實現(xiàn)共贏,促進經濟共享。

圖7 消息中心原理圖Fig.7 Schematic Diagram of Message Center

圖8 房客消息中心Fig.8 Message Center of Roomer

參考文獻

[1] Django community.The Django Book[OL]. [2016]. http://www. djangobook.com/.朱道雨. 基于Django的旅游管理信息系統(tǒng)的建設[D]. 北京:中國地質大學. 2011.

[2] ZHU D Y. The Construction of Tourism Management Information System Based on Django[D]. Beijing: China University of Geosciences. 2011. (in Chinese)王冉陽. 基于Django和Python的Web開發(fā)[J]. 電腦編程技巧與維護, 2009, 16(2): 55-59.

[3] WANG R Y. Web Development Based on the Python and Django[J]. Computer Programming Skills and Maintenance, 2009, 16(2): 55-59. (in Chinese).徐旭銘. Django Web開發(fā)指南[M]. 北京: 機械工業(yè)出版社, 2009.

[4] XU X M. Django Web Development Guidelines[M]. Beijing: China Machine Press, 2009. (in Chinese).陳林. 基于Django的英語在線視頻教學系統(tǒng)的設計與實現(xiàn)[D]. 廈門: 廈門大學, 2014.

[5] CHEN L. Design and Implementation of Online English Video Teaching System Based on Django[D]. Xiamen: Xiamen University, 2014. (in Chinese).吳吉義, 王中友. MySQL原理與Web系統(tǒng)開發(fā)[M]. 北京:清華大學出版社, 2009.

[6] WU J Y, WANG Z Y. MySQL Principle and Development of Web system[M]. Beijing: Tsinghua University Press, 2009. (in Chinese).劉欣. 基于MVC模式的Web軟件系統(tǒng)開發(fā)框架設計與實現(xiàn)[D]. 山東: 山東大學, 2013.

[7] LIU X. Design and Implementation of Web Software System Development Framework Based on the MVC Pattern[D]. Shandong: Shandong University, 2013. (in Chinese).周玥. 基于Django框架的校園預約打印網(wǎng)站設計與實現(xiàn)[D]. 吉林: 吉林大學, 2013.

[8] ZHOU Y. Django-Based Campus Print Reservation Website Design and Implementation[D]. Jilin: Jilin University, 2013. (in Chinese).

O2O Family Hotel Business Platform based on Django

XIA Ya-li, DAI Zhi-tao

With the development of the Internet, in addition to the original B2B, B2C, C2C e-commerce pattern, a new type of consumption pattern 020 has been developed rapidly in the market. In this paper, we design and complete the o2o Hotel Family business platform based on Django, introduced under the PyCharm development platform, we use the technology Django, MySQL, Bootstrap, jQuery to develop the Family Hotel business platform. In this paper, we mainly discuss the related technologies, design ideas, the design and implementation of each function module of the system. Family Hotel is that the common households not only have their own accommodation, but also at the same time have extra accommodation space for tourists or businessman to live, which at a certain extent provides convenience to the tourists and businessmen, and at the same time, households can get profits from renting house to others. Family Hotel broke through the original hotel model, creating the new type of hotel renting in the internet era.

Family hotel business platform; Django; Python; O2O

TP311

: A

10.3969/j.issn.1003-6970.2016.12.026

夏亞麗(1990-),女,碩士研究生,主要研究方向:嵌入式系統(tǒng)與網(wǎng)絡通信。

戴志濤,男,教授,主要研究方向:嵌入式系統(tǒng)。

猜你喜歡
房東消息數(shù)據(jù)庫
給黃鼠狼當房東
袋熊房東煉成記
一張圖看5G消息
海鳥遇上惡房東
數(shù)據(jù)庫
財經(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(2016年6期)2016-02-24 07:41:51
撒謊的房東
好孩子畫報(2015年3期)2015-03-26 21:21:38
消息
通河县| 外汇| 成安县| 尤溪县| 云霄县| 汾阳市| 康定县| 米脂县| 南川市| 连南| 遂昌县| 正宁县| 资溪县| 大姚县| 河北区| 佛教| 军事| 曲麻莱县| 永平县| 永福县| 乌鲁木齐县| 庆元县| 黄浦区| 马边| 当阳市| 福州市| 榆社县| 上思县| 延寿县| 堆龙德庆县| 中山市| 延庆县| 连城县| 南投市| 万盛区| 宁波市| 新乐市| 上犹县| 阳新县| 南川市| 乌鲁木齐市|