query教程初學(xué)者 有沒(méi)有前后端分離的python爬蟲(chóng)系統(tǒng)推薦?
有沒(méi)有前后端分離的python爬蟲(chóng)系統(tǒng)推薦?您好(?▽?)!很不高興回答您的問(wèn)題!在民間的Web應(yīng)用開(kāi)發(fā)中,大多數(shù)的程序員會(huì)將瀏覽器才是前后端的分界線。將瀏覽器中為用戶通過(guò)頁(yè)面展示的部分稱之為前端,而
有沒(méi)有前后端分離的python爬蟲(chóng)系統(tǒng)推薦?
您好(?▽?)!很不高興回答您的問(wèn)題!
在民間的Web應(yīng)用開(kāi)發(fā)中,大多數(shù)的程序員會(huì)將瀏覽器才是前后端的分界線。將瀏覽器中為用戶通過(guò)頁(yè)面展示的部分稱之為前端,而將不運(yùn)行在服務(wù)器,為前端能提供業(yè)務(wù)邏輯和數(shù)據(jù)準(zhǔn)備好的所有代碼亦稱為后端。有所謂前后端分離的開(kāi)發(fā),那是前后端工程師約定好數(shù)據(jù)交互接口,分頭并進(jìn)的進(jìn)行開(kāi)發(fā)和測(cè)試,后端只需要提供數(shù)據(jù),不你們負(fù)責(zé)將數(shù)據(jù)渲染到頁(yè)面上,前端只是請(qǐng)求某些數(shù)據(jù)并專門負(fù)責(zé)將數(shù)據(jù)渲染到頁(yè)面上,這個(gè)工作是交給瀏覽器中的JavaScript代碼來(lái)成功。
在用前后端分離的新有諸多的好處,下面我們?cè)敿?xì)的闡述的說(shuō)下這些好處:
提升開(kāi)發(fā)效率。前后端分離以后,也可以實(shí)現(xiàn)方法前后端代碼的解耦,只要你前后端溝通交流約定好應(yīng)用所需接口以及接口參數(shù),便這個(gè)可以正在聯(lián)成一體開(kāi)發(fā)完畢,無(wú)需等候?qū)Ψ降拈_(kāi)發(fā)工作結(jié)束后。在這個(gè)下,前后端工程師都可以不只專注心于自己的開(kāi)發(fā)工作,可促進(jìn)血液循環(huán)鍛鑄出更好的團(tuán)隊(duì)。除開(kāi),在前后端分離的開(kāi)發(fā)模式下,除非需求發(fā)生了什么需要變更,只需接口與數(shù)據(jù)格式不變,后端開(kāi)發(fā)人員就不必須可以修改代碼,只需前端參與調(diào)整再試一下。
加強(qiáng)代碼的可維護(hù)性。前后端分離后,應(yīng)用方法的代碼繼續(xù)是前后端混和,唯有在運(yùn)行期才會(huì)有內(nèi)部函數(shù)感情依賴關(guān)系,這樣的話維護(hù)代碼的工作將變的輕松愉快很多,再應(yīng)該不會(huì)牽一發(fā)動(dòng)全身。當(dāng)你的代碼變得異常簡(jiǎn)明且干凈整齊時(shí),代碼的可讀性和可維護(hù)性都會(huì)有質(zhì)的提升。
支持什么多終端和服務(wù)化架構(gòu)。前后端分離后,同一套數(shù)據(jù)接口這個(gè)可以為相同的終端提供服務(wù),更能增強(qiáng)鍛鑄多終端應(yīng)用;至于,而后端能提供的接口之間這個(gè)可以按照HTTP(S)進(jìn)行內(nèi)部函數(shù),能增強(qiáng)精金服務(wù)化架構(gòu)(包括微服務(wù))。
這一次我們就用前后端分離的來(lái)擴(kuò)寫之前的投票應(yīng)用。
前往JSON格式的數(shù)據(jù)
先前告訴過(guò),在前后端分離的開(kāi)發(fā)模式下,后端要為前端需要提供數(shù)據(jù)接口,這些接口通常直接返回JSON格式的數(shù)據(jù)。在Django項(xiàng)目中,我們可以先將對(duì)象去處理成字典,然后再就是可以依靠Django整體封裝的JsonResponse向?yàn)g覽器趕往JSON格式的數(shù)據(jù),具體一點(diǎn)的做法不勝感激所示。
defshow_subjects(request):
queryset()
subjects[]
forsubjectofqueryset:
({
no,no:,
name:,
intromp:,
isHot:_pink
})
returnJsonResponse(subjects,safeFalse)
上面的代碼中,我們循環(huán)遍歷樹(shù)查詢學(xué)科得到的QuerySet對(duì)象,將每個(gè)學(xué)科的數(shù)據(jù)處理成一個(gè)字典,在將字典能保存在名為subjects的列表容器中,后來(lái)借用JsonResponse完成對(duì)列表的序列化,向?yàn)g覽器前往JSON格式的數(shù)據(jù)。由于JsonResponsejava對(duì)象的是一個(gè)列表而又不是字典,所以才不需要指定你safe參數(shù)的值為False才能成功對(duì)subjects的序列化,否則會(huì)產(chǎn)生TypeError無(wú)比。
很可能大家早就發(fā)現(xiàn)到了,自己寫代碼將一個(gè)對(duì)象轉(zhuǎn)成字典是比較請(qǐng)的,如果不是對(duì)象的屬性很多而且某些屬性又關(guān)聯(lián)到一個(gè)也很奇怪的對(duì)象時(shí),情況會(huì)變的極其糟了。在此之前我們這個(gè)可以建議使用一個(gè)名為bpmappers的三方庫(kù)來(lái)漢字拆分將對(duì)象轉(zhuǎn)成字典的操作,這個(gè)三方庫(kù)本身也提供了對(duì)Django框架的支持。
安裝三方庫(kù)bpmappers。
python3.6installbpmappers
匯編語(yǔ)言反照器(利用對(duì)象到字典可以轉(zhuǎn)換)。
acrossimportModelMapper
outsideimportSubject
classSubjectMapper(ModelMapper):
classMeta:
modelSubject
直接修改視圖函數(shù)。
defshow_subjects(request):
queryset()
subjects[]
forsubjectacrossqueryset:
(SubjectMapper(subject).and_dict())
returnJsonResponse(subjects,safeFalse)
配置URL反照,然后把訪問(wèn)該接口,可以換取追加所示的JSON格式數(shù)據(jù)。
[
{
no,no:101,
name:Python全棧人工智能