閆錦彪 楊冬梅 張進



摘? 要:針對高校大學生對教材等各類書籍的強烈需求,校園二手書交易平臺應運而生。文章著眼于校園二手教材的交易,研究Django、Python、HTML5、CSS3以及JavaScript等技術在網站開發中的運用。通過分析校園教材使用率的現狀和Django的應用情況,提出了基于Django的校園二手教材交易網站的建設方法,為實現校園二手教材的網上交易,搭建二手教材校園網上交易平臺,豐富校園教材選購方式提供思路和方法。
關鍵詞:Django;Python;網站開發;校園二手教材
中圖分類號:TP311? ? ? 文獻標識碼:A 文章編號:2096-4706(2021)02-0107-04
Abstract:In view of the strong demand of college students for textbooks and other books,the campus second-hand books trading platform emerges as the times require. This paper focuses on the transaction of campus second-hand textbooks and studies the application of Django,Python,HTML5,CSS3,JavaScript and other technologies in website development. Through analyzing of the status of usage rate of the campus textbooks and the Django application situation,construction method of the campus second-hand textbooks trading website is proposed. In order to realize online transactions of campus second-hand textbooks,this paper constructs second-hand textbooks campus online trading platform,which provide ideas and methods for riching campus textbooksselection and purchase ways.
Key words:Django;Python;website development;campus second-hand textbook
0? 引? 言
山東華宇工學院目前開設30個本科專業和35個專科專業,每個專業開設課程近50門,在校生人數過萬,每學期征訂教材數萬本。面對如此龐大的教材需求量,我校實行的是統一購買、統一發放的制度,而且通常是一次性使用,教材使用壽命僅為半年。
通常新教材售價較高,使用率卻較低,再加上許多學生在結課后教材都在七成新以上,教材改版變動不大等情況,我校實行教材的循環利用有很高的必要性。但由于沒有方便、適宜的交易平臺,學生畢業后只能將教材當廢紙處理,造成了大量的資源浪費。如何避免教材資源的浪費,提高教材的循環使用率是我們亟待解決的難題,也是本篇文章的研究重點。作者基于Django框架完善的功能、前沿的設計理念以及在網站開發領域中的優勢和特色,針對高校大學生對教材等各類書籍的強烈需求,構建了基于Django技術的校園二手書交易平臺,該平臺將有利于教材的循環使用。
1? 關于Django
Django作為一種開源的框架,采用了MVT的設計模式,被用于各種網站的開發。由于Django能夠使開發復雜的、數據庫驅動的網站變得簡單,并注重組件的重用性和“可插拔性”,敏捷開發和DRY法則(Dont Repeat Yourself)等,將會在Python中被普遍地使用,甚至包括配置文件和數據模型。
例如,Django的Model層自帶了操作數據庫的ORM組件,使我們在開發當中,無需書寫和學習繁雜的SQL語句就可以方便的操作數據庫,做增刪改查等核心操作。另外,Django自帶了后臺管理界面,我們可以直接配置使用,能夠大大降低開發后臺管理界面的難度,并縮短開發時間。
2? 校園二手教材交易網站平臺介紹
針對校園二手教材交易網站的特性,主要進行了前端頁面和后臺功能的劃分。
前端頁面分為便于用戶查看的前臺模塊和用于網站維護管理的后臺管理模塊。其中,前臺模塊主要包括向用戶展示的頁面,后臺模塊包括商品的管理、商品類型的管理等等。
前端頁面功能的實現需要后臺系統的支持,這里包括但不限于,登錄模塊,顯示模塊,購買模塊,權限模塊。具體功能模塊情況如圖1所示。
3? 校園二手教材交易網站建設的方法
根據山東華宇工學院的教材使用現狀以及Django用于網站開發建設中的優勢特色,我們進行了基于Django的校園二手教材網上交易平臺的建設研究。
3.1? 搭建系統環境
校園二手教材交易網站的設計與制作,采用的系統是Windows系統,在開發之前,需要下載和安裝在Windows平臺上運行的軟件,搭建網站運行所需的系統環境。此外,為了提高開發效率,還需要安裝集成開發環境。因此,在開發之前,需要做一下準備:
(1)從Python官網下載最新版的Python 3.7.3安裝并添加到Windows環境變量中。
(2)安裝VirtualenvWrapper及使用,通過Pip install virtualenvwrapper-win在命令行進行安裝。這個是用來創建虛擬環境的包,使用虛擬環境可以讓包管理更加方便。
(3)創建虛擬環境,在虛擬環境中安裝Django 2.1.4。
(4)安裝Pycharm profession集成開發環境。
3.2? 實現注冊、登錄、購物車、訂單等功能
對于校園二手教材交易網站功能的實現,需要針對不同的功能,創建不同的應用來進行管理,使用Admin整合各個應用,生成后臺管理模塊。具體應用創建如下:
(1)創建應用Myauth,用來存放關于注冊和登錄的功能模塊,實現用戶注冊和用戶登錄功能。登錄視圖如圖2所示。
通過短信驗證碼的方式驗證用戶注冊,從數據庫中校驗賬號密碼完成登錄。登錄視圖函數的代碼為:
@require_POST
def login_view(request):
form = LoginForm(request.POST)
if form.is_valid():
login_telephone = form.cleaned_data.get('telephone')
login_password = form.cleaned_data.get(' password')
login_remember = form.cleaned_data.get('remember')
user = authenticate(request,username= login_telephone,password = login_password)
if user:
if user.is_active:
login(request,user)
if remember:
request.session.set_expiry(None)
else:
request.session.set_expiry(0)
return restful.ok()
else:
return restful.unauth(message="您的賬號已經被凍結了!")
else:
return restful.params_error(message="手機號或者密碼錯誤!")
else:
errors = form.get_errors()
return restful.params_error(message=errors)
(2)創建應用Shop,處理網站中關于教材的瀏覽和搜索功能。實現教材以類別區分瀏覽和詳情瀏覽,實現簡單的關鍵詞搜索、過濾等功能:
@admin.register(Category)
class CategoryAdmin(admin. ModelAdmin):
list_display = ['name', 'slug']
prepopulated_fields = {'slug': ('name',)}
@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
list_display = ['name', 'slug', ' price',? 'available', 'created',? 'updated']
list_filter = ['available', 'created', ' updated']
list_editable = ['price', 'available']
prepopulated_fields = {'slug': ('name',)}
往購物車添加教材的頁面如圖3所示。
代碼為:
def add(self,product,quantity=1,update_quantity=False):
# 添加教材到購物車并更新
product_id = str(product.id)
if product_id not in self.cart:
self.cart[product_id] = {'quantity': 0,
'price': str(product.price)}
if update_quantity:
self.cart[product_id]['quantity'] = quantity
else:
self.cart[product_id]['quantity'] += quantity
self.save()
def save(self):
# 中間件在看到這個屬性的時候,就會保存session
self.session.modified = True
(3)創建應用Orders,實現訂單功能。實現用戶填寫基本信息,提交訂單并在數據庫中生成記錄等功能,代碼為:
Class Order(models.Model) :
username = models.CharField(max_length=100,null=" True" , verbose_name="姓名")
telephone = models.CharField(max_length=13,verbose_name="電話")
email = models.EmailField(verbose_name="郵箱")
address = models.CharField(max_length=250,verbose_name="地址")
academy = models.CharField(max_length=100, null=True,verbose_name="學院")
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
paid = models.BooleanField(default=False)
class Meta:
ordering = ('-created',)
verbose_name = "訂單"
verbose_name_plural ="訂單"
def _str_(self):
return 'Order {}'.format(self.id)
(4)使用Django的Admin系統對網站后臺進行管理。管理網站內容,實現日常運營,包含管理網站的教材售價、是否有貨、添加教材和類別、上傳教材圖片等功能。
由于Django的驗證系統采用的是用戶名驗證,包含了first_name,last_name等國內不會用到的字段,所以,在校園二手教材交易網站的設計與制作中,重構Django的驗證系統,可以實現手機號加密碼登錄的驗證方式。
對于網站中的注冊及登錄、購物車、訂單等功能,將它們作為單獨的應用來開發,完成后集成到項目中,通過這樣的方式,可以實現模塊之間的單獨開發、單獨測試,能夠降低代碼之間的耦合性,提高代碼的可讀性和可維護性。在實現的過程中,由于每個應用都是獨立的,所以可以集中精力在單個應用的開發和測試上,每完成一個,就集成到項目中進行測試。
4? 結? 論
校園二手教材網絡交易平臺的構建,力求在網站模塊劃分和功能方面做到盡善盡美,使網站功能模塊之間能夠相互獨立又相互協作,最大限度地消除潛在錯誤,提高訪問效率,在二手書交易平臺領域擁有一席之地,解決我校二手教材的再利用問題。但校園二手教材交易網站的最終實現,依然會存在很多問題和漏洞,還需不斷地測試、調試和優化,本文通過校園二手教材網絡交易平臺構建的方法探討和研究,希望能夠對相關網站的構建提供參考和借鑒。
參考文獻:
[1] 楊剛.Django框架中通用類視圖的用法 [J].電腦知識與技術,2016,12(13):103-104.
[2] 濮文強,曹磊,夏斌.基于Django框架的關鍵詞排名監控系統設計 [J].微型機與應用,2017,36(20):97-100.
[3] 湯磊.基于Django的維穩平臺情報信息管理與分析系統研究與實現 [D].成都:西南交通大學,2017.
[4] 王兆媛.基于Django框架的圖書管理系統的設計與實現 [D].長春:吉林大學,2016.
[5] 錢志遠.基于Web的Python編程環境研究 [J].數字技術與應用,2016(10):54.
作者簡介:閆錦彪(1999.10—),男,漢族,山東濟寧人,本科在讀,研究方向:數字媒體技術專業;楊冬梅(1982.09—),女,漢族,山東德州人,講師,碩士,研究方向:藝術設計與數字媒體技術研究;張進(1987.11—),男,漢族,山東德州人,講師,碩士,研究方向:影像藝術與數字媒體技術研究。