王玉芬 別好杰


關(guān)鍵詞:Python;Django框架;門(mén)戶(hù)網(wǎng)站;Bootstrap框架
1 引言
隨著移動(dòng)互聯(lián)網(wǎng)的深入普及,Web開(kāi)發(fā)具有越來(lái)越重要的戰(zhàn)略意義,同時(shí),人工智能的快速發(fā)展使得以Python為基礎(chǔ)的Web應(yīng)用框架在眾多后端框架中脫穎而出。使用Python語(yǔ)言設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于Django 框架的低成本、易擴(kuò)展、性能穩(wěn)定的企業(yè)網(wǎng)站系統(tǒng)。
2 系統(tǒng)開(kāi)發(fā)技術(shù)
2.1 Python 語(yǔ)言
Python語(yǔ)言是一種面向?qū)ο蟆⒔忉屝偷某绦蛟O(shè)計(jì)語(yǔ)言,簡(jiǎn)單、易學(xué)、易維護(hù)、速度快,和其他語(yǔ)言相比,Python具有免費(fèi)、開(kāi)源、擁有龐大的第三方庫(kù)等優(yōu)點(diǎn)。這些優(yōu)勢(shì)使得Python成為人工智能、網(wǎng)絡(luò)爬蟲(chóng)、數(shù)據(jù)分析等領(lǐng)域的首選語(yǔ)言,還被越來(lái)越多的企業(yè)用于Web搭建[1-2]。
2.2 Django 框架
Django是一個(gè)由Python寫(xiě)成的開(kāi)源Web應(yīng)用框架,擁有強(qiáng)大的數(shù)據(jù)庫(kù)訪問(wèn)組件、靈活的URL映射、優(yōu)秀的模板系統(tǒng)用于控制前端邏輯、自帶強(qiáng)大的后臺(tái)管理功能,有著類(lèi)似熱插拔的App應(yīng)用理念。Django還擁有優(yōu)秀的緩存、錯(cuò)誤提示等功能,這些優(yōu)點(diǎn)使得Django在眾多Web應(yīng)用框架中脫穎而出,成為當(dāng)前使用人數(shù)最多的Python Web框架[3]。
2.3 JavaScript
JavaScript是Web開(kāi)發(fā)領(lǐng)域中的一種功能強(qiáng)大的編程語(yǔ)言,主要用于開(kāi)發(fā)交互式的網(wǎng)頁(yè)。它是一門(mén)腳本語(yǔ)言,簡(jiǎn)單易用,語(yǔ)法規(guī)則相對(duì)靈活,開(kāi)發(fā)人員能夠快速完成程序的編寫(xiě)工作。JavaScript不依賴(lài)于操作系統(tǒng),僅需要瀏覽器的支持。JavaScript能夠通過(guò)面向?qū)ο笏枷脒M(jìn)行編程,而面向?qū)ο笥质笿avaScript開(kāi)發(fā)變得快捷、高效,降低開(kāi)發(fā)成本[4]。
2.4 Ajax
2.5 Bootstrap 框架
Bootstrap框架是全球最受歡迎的前端框架和開(kāi)源項(xiàng)目之一,用于構(gòu)建響應(yīng)式、移動(dòng)設(shè)備優(yōu)先的網(wǎng)站[6]。具有如下優(yōu)點(diǎn):響應(yīng)式設(shè)計(jì)、工具類(lèi)優(yōu)先、豐富的組件、學(xué)習(xí)曲線平緩、CSS預(yù)編譯、易與其他框架結(jié)合使用。
3 網(wǎng)站框架設(shè)計(jì)
3.1 功能模塊設(shè)計(jì)
企業(yè)門(mén)戶(hù)網(wǎng)站建設(shè)在企業(yè)發(fā)展的過(guò)程中具有十分重要的作用。企業(yè)網(wǎng)站通常包含企業(yè)簡(jiǎn)介、企業(yè)榮譽(yù)、企業(yè)新聞、企業(yè)產(chǎn)品、企業(yè)招聘等內(nèi)容。同時(shí)還需要有一個(gè)網(wǎng)站后臺(tái)管理系統(tǒng),主要用于對(duì)網(wǎng)站信息進(jìn)行管理,方便管理人員查看、更新、修改網(wǎng)站內(nèi)容。具體模塊結(jié)構(gòu)如圖1所示。
其中企業(yè)新聞包含了企業(yè)要聞、行業(yè)新聞、最新通知三個(gè)子模塊,企業(yè)產(chǎn)品包含了產(chǎn)品一、產(chǎn)品二、產(chǎn)品三共計(jì)三個(gè)子模塊,企業(yè)招聘包括了在線咨詢(xún)、簡(jiǎn)歷投遞兩個(gè)子模塊。
3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
企業(yè)門(mén)戶(hù)網(wǎng)站后臺(tái)管理采用MySQL數(shù)據(jù)庫(kù)提供數(shù)據(jù)服務(wù),具有開(kāi)源、輕量級(jí)、接口規(guī)范等優(yōu)點(diǎn)[7]。數(shù)據(jù)庫(kù)包括產(chǎn)品列表、新聞列表等。表結(jié)構(gòu)設(shè)計(jì)和說(shuō)明如表1、表2所示。
4 網(wǎng)站具體實(shí)現(xiàn)
4.1 Web 框架搭建
項(xiàng)目選用VS code編譯環(huán)境,首先在VS code終端使用django-admin startproject QYProject 命令創(chuàng)建項(xiàng)目,然后通過(guò)VS code的菜單欄打開(kāi)新創(chuàng)建的QYPro? jseecrtve文r命件令?yuàn)A啟,動(dòng)接項(xiàng)著目在確終保端項(xiàng)輸目入創(chuàng)p建yt成ho功n m[8]。anage.py run?1) 文件結(jié)構(gòu)設(shè)計(jì):項(xiàng)目框架的搭建重點(diǎn)在于文件結(jié)構(gòu)的合理設(shè)計(jì)。一個(gè)合理的文件結(jié)構(gòu)可以在很大程度上提高項(xiàng)目整體的開(kāi)發(fā)效率,減少冗余,提高項(xiàng)目組件的復(fù)用性。首先在終端使用python manage.py startapp命令創(chuàng)建相應(yīng)的應(yīng)用,然后在項(xiàng)目工作目錄下創(chuàng)建templates文件夾,此文件夾用來(lái)存放各個(gè)應(yīng)用共享的模板文件。網(wǎng)站的各個(gè)功能頁(yè)面一般都具有統(tǒng)一的風(fēng)格,可以把每個(gè)頁(yè)面相同的內(nèi)容如網(wǎng)頁(yè)的頭尾、導(dǎo)航欄等編輯成模板文件,其他頁(yè)面在開(kāi)發(fā)過(guò)程中可以繼承模板文件,只需修改少量代碼就可以實(shí)現(xiàn)頁(yè)面的復(fù)用,從而極大地提高了開(kāi)發(fā)效率。還需要?jiǎng)?chuàng)建一個(gè)static文件夾,用來(lái)存放項(xiàng)目共享的各種資源。
2) 在各應(yīng)用中新建名為templates的文件夾,在該文件夾下新建相應(yīng)的網(wǎng)頁(yè)文件,并進(jìn)行簡(jiǎn)單編輯方便測(cè)試;3) 在各應(yīng)用下的views.py文件中編寫(xiě)視圖處理函數(shù),返回創(chuàng)建的網(wǎng)頁(yè)文件;4) 在路由文件urls.py中使用path函數(shù)配置路由;5) 使用python manage.py runserver運(yùn)行項(xiàng)目;6) 瀏覽器中輸入各子頁(yè)面地址進(jìn)行訪問(wèn)均能正常顯示測(cè)試內(nèi)容;7) 按Ctrl+C組合鍵停止項(xiàng)目運(yùn)行,網(wǎng)站框架搭建完成。
4.2 在Django 中使用MySQL
1) 修改項(xiàng)目根目錄下的配置文件settings.py中的DATABASES字段,具體如下。
2) 在模型文件models.py中定義模型類(lèi),完成數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)。
3) 使用命令python manage.py makemigrations 生成遷移文件;使用命令python manage.py migrate實(shí)現(xiàn)數(shù)據(jù)表遷移。
4) 通過(guò)Django自帶的強(qiáng)大的后臺(tái)管理系統(tǒng),對(duì)數(shù)據(jù)庫(kù)模型進(jìn)行管理和操作,實(shí)現(xiàn)數(shù)據(jù)的查看、添加、修改和刪除。
4.3 企業(yè)簡(jiǎn)介模塊
企業(yè)簡(jiǎn)介模塊主要以靜態(tài)文字和靜態(tài)圖片為主,使用Bootstrap框架完成門(mén)戶(hù)網(wǎng)站頁(yè)面布局設(shè)置,創(chuàng)建基于Django的項(xiàng)目共享模板,完成頁(yè)面復(fù)用。
4.4 企業(yè)榮譽(yù)模塊
企業(yè)的榮譽(yù)信息是隨著企業(yè)獲得的榮譽(yù)動(dòng)態(tài)變化的,因此需要抽象出當(dāng)前的榮譽(yù)數(shù)據(jù),并在數(shù)據(jù)庫(kù)中生成相應(yīng)的數(shù)據(jù)模型。在企業(yè)榮譽(yù)應(yīng)用中的mod? els.py文件中添加“企業(yè)榮譽(yù)”(Qyry) 模型如下。
4.5 企業(yè)新聞模塊
企業(yè)新聞一定是實(shí)時(shí)動(dòng)態(tài)變化的,根據(jù)前面的數(shù)據(jù)庫(kù)設(shè)計(jì),創(chuàng)建“企業(yè)新聞”(Qyxw) 模型如下。
4.6 后臺(tái)管理模塊
Django能夠根據(jù)定義的模型自動(dòng)地生成管理模塊,首先在終端使用python manage.py creatsu-peruser 命令創(chuàng)建超級(jí)管理員,根據(jù)提示完成管理員賬號(hào)和密碼的設(shè)置;然后在admin.py文件中添加模型對(duì)應(yīng)的注冊(cè)信息,將模型注冊(cè)到后臺(tái)管理系統(tǒng)。接下來(lái)啟動(dòng)項(xiàng)目并訪問(wèn)http://127.0.0.1:8000/admin,輸入管理員賬號(hào)和密碼,就可以操作Qyry、Qyxw和Qycp模型了,可以很方便地對(duì)企業(yè)榮譽(yù)、企業(yè)新聞、企業(yè)產(chǎn)品數(shù)據(jù)進(jìn)行增刪查改,完成企業(yè)網(wǎng)站后臺(tái)管理的操作。
5 結(jié)束語(yǔ)
使用Django 框架,結(jié)合MySQL數(shù)據(jù)庫(kù)設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)企業(yè)門(mén)戶(hù)網(wǎng)站,該網(wǎng)站分為前端用戶(hù)瀏覽頁(yè)面和后臺(tái)管理系統(tǒng)。網(wǎng)站首頁(yè),用戶(hù)可以瀏覽企業(yè)信息、通過(guò)企業(yè)獲得的榮譽(yù)快速了解企業(yè)、瀏覽企業(yè)產(chǎn)品、了解企業(yè)的最新資訊,用戶(hù)還可以搜索自己感興趣的產(chǎn)品和相關(guān)新聞,通過(guò)簡(jiǎn)潔的頁(yè)面與用戶(hù)進(jìn)行良好交互。在后臺(tái)管理系統(tǒng)中,企業(yè)網(wǎng)站管理員能夠?qū)η芭_(tái)所展示的產(chǎn)品信息、新聞資訊等進(jìn)行維護(hù),進(jìn)行實(shí)時(shí)更新,可以根據(jù)用戶(hù)的瀏覽記錄和停留時(shí)間,及時(shí)推送最受用戶(hù)歡迎的產(chǎn)品。系統(tǒng)經(jīng)過(guò)測(cè)試,所有功能均可正常運(yùn)行。
使用Django 框架,可以提高系統(tǒng)的開(kāi)發(fā)效率,降低系統(tǒng)開(kāi)發(fā)的復(fù)雜度,便于系統(tǒng)的更新和維護(hù)。