1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        你知道前后端分離開(kāi)發(fā)的原理嗎?

        共 3095字,需瀏覽 7分鐘

         ·

        2021-09-06 02:30

        ??點(diǎn)擊“博文視點(diǎn)Broadview”,獲取更多書(shū)訊

        在Web應(yīng)用開(kāi)發(fā)中,有兩種開(kāi)發(fā)模式:前后端不分離和前后端分離。

        前后端不分離的開(kāi)發(fā)模式耦合度高,適合純網(wǎng)頁(yè)開(kāi)發(fā);前后端分離的開(kāi)發(fā)模式耦合度低,前端可以通過(guò)訪問(wèn)接口來(lái)對(duì)數(shù)據(jù)進(jìn)行增刪改查。所以,前后端分離的開(kāi)發(fā)模式是更被開(kāi)發(fā)者廣泛使用的一種。

        前后端分離主要是指,隨著Web技術(shù)的發(fā)展,采用前端、后端各自獨(dú)立開(kāi)發(fā)的模式,解決前端后端一體化開(kāi)發(fā)所帶來(lái)的互相制約問(wèn)題,提高網(wǎng)站項(xiàng)目開(kāi)發(fā)效率和后續(xù)的可維護(hù)性,同時(shí)可以通過(guò)標(biāo)準(zhǔn)化的Web API為前后端傳遞標(biāo)準(zhǔn)化數(shù)據(jù),如JSON、XML格式的數(shù)據(jù)。

        前后端分離原理

        Django Rest Framework,簡(jiǎn)稱(chēng)DRF,中文意思是“Django表述狀態(tài)轉(zhuǎn)化框架”,是一款功能強(qiáng)大、基于Django框架開(kāi)發(fā)的、用于構(gòu)建符合RESTful風(fēng)格Web API的、前后端分離的商業(yè)化開(kāi)發(fā)工具包。

        它是免費(fèi)開(kāi)源的,被一些大型IT企業(yè)所使用,是目前非常流行的商業(yè)級(jí)技術(shù)框架之一。

        Django的Rest Framework前后端分離實(shí)現(xiàn)原理如圖1所示。

        圖1  前后端分離實(shí)現(xiàn)原理

        瀏覽器端,采用自有客戶端技術(shù)框架(如Vue.js、ExtJS、EasyUI、DWZ等)實(shí)現(xiàn)獨(dú)立開(kāi)發(fā),并與服務(wù)器端進(jìn)行資源調(diào)用。

        服務(wù)器端,整體框架建立在Django框架基礎(chǔ)上,借助DRF技術(shù)實(shí)現(xiàn)數(shù)據(jù)、文件的交換使用。

        DRF的核心是提供RESTful規(guī)范的API接口,為瀏覽器端提供數(shù)據(jù)和文件訪問(wèn)支持。

        這里的數(shù)據(jù)和文件統(tǒng)稱(chēng)為數(shù)據(jù)資源。

        為了讓瀏覽器端接收J(rèn)SON或XML格式的數(shù)據(jù),該框架事先需要進(jìn)行數(shù)據(jù)序列化處理。接收到瀏覽器端發(fā)送過(guò)來(lái)的數(shù)據(jù)后,需要對(duì)其進(jìn)行反序列化處理才能使用。

        前后端分離方式與前后端不分離方式之間的一個(gè)重要的區(qū)別是,前者不進(jìn)行模板渲染便將其返回給瀏覽器,僅提供標(biāo)準(zhǔn)結(jié)構(gòu)的數(shù)據(jù)資源。

        RESTful

        REST的全稱(chēng)為Representational State Transfer,中文意思是“表述狀態(tài)轉(zhuǎn)化”。

        REST于2000年在Roy Fielding的博士論文中首次出現(xiàn),Roy Fielding是HTTP規(guī)范的主要編寫(xiě)者之一。

        在目前主流的3種Web服務(wù)交互方案中,REST相比于SOAP(Simple Object Access Protocol,簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議)及XML-RPC更加簡(jiǎn)單明了,無(wú)論是對(duì)URL進(jìn)行處理還是對(duì)Payload進(jìn)行編碼,REST都傾向于用更加簡(jiǎn)單、輕量的方法進(jìn)行設(shè)計(jì)和實(shí)現(xiàn)。

        值得注意的是,REST并不是一個(gè)明確的標(biāo)準(zhǔn),而更像一種設(shè)計(jì)風(fēng)格。符合REST風(fēng)格的架構(gòu)方式就是RESTful。

        1.?dāng)?shù)據(jù)資源與URL

        REST需要表述的是數(shù)據(jù)資源,包括數(shù)據(jù)庫(kù)中的記錄、各種文件等。要讓數(shù)據(jù)資源被瀏覽器訪問(wèn),需要提供一個(gè)唯一標(biāo)識(shí)。在Web中,這個(gè)唯一標(biāo)識(shí)就是URL(Uniform Resource Locator,統(tǒng)一資源定位符)。比如,假設(shè)127.0.0.1:8000/use/1中的1指向應(yīng)用use下的某一條數(shù)據(jù)記錄,則整個(gè)URL就是一個(gè)數(shù)據(jù)資源地址。

        2.統(tǒng)一資源接口

        有了數(shù)據(jù)資源和訪問(wèn)地址后,RESTful為瀏覽器端的訪問(wèn)提供了4種常用HTTP標(biāo)準(zhǔn)訪問(wèn)方式,用于傳遞數(shù)據(jù)。

        • GET:從服務(wù)器端獲取數(shù)據(jù)資源。

        • POST:在服務(wù)器端建立一個(gè)數(shù)據(jù)資源。

        • PUT:在服務(wù)器端更新數(shù)據(jù)資源。

        • DELETE:從服務(wù)器端刪除指定的數(shù)據(jù)資源。

        3.常用返回狀態(tài)碼

        HTTP的返回狀態(tài)碼是純數(shù)字的,如404、200等,不太容易理解,RESTful提供了統(tǒng)一標(biāo)準(zhǔn)的文字標(biāo)識(shí)符,如表1所示,更有助于使用人員理解。

        表1 常用返回狀態(tài)碼對(duì)應(yīng)的文字識(shí)別符

        關(guān)于前后端分離的內(nèi)容就先分享到這里,歡迎閱讀《Python Django Web從入門(mén)到項(xiàng)目實(shí)戰(zhàn)(視頻版)》一書(shū),繼續(xù)了解更多關(guān)于Django Web開(kāi)發(fā)的內(nèi)容。



        ▊《Python Django Web從入門(mén)到項(xiàng)目實(shí)戰(zhàn)(視頻版)

        劉瑜 安義 


        • 經(jīng)驗(yàn)豐富的寫(xiě)作團(tuán)隊(duì),本書(shū)作者皆有20多年的實(shí)戰(zhàn)經(jīng)驗(yàn),并有雄厚的寫(xiě)作基礎(chǔ),將理論與實(shí)踐完美地結(jié)合在一起。

        • 將故事融入于書(shū)中,增加了本書(shū)的閱讀情趣,便于讀者更好地吸收重點(diǎn)知識(shí)。

        • 附贈(zèng)豐富的配套學(xué)習(xí)資源:1個(gè)完整的商業(yè)項(xiàng)目代碼案例、80多段案例代碼、30多個(gè)視頻(免費(fèi)贈(zèng)送)、習(xí)題冊(cè)及答案手冊(cè)(免費(fèi)贈(zèng)送)。

        • 貼心的互動(dòng)教學(xué):QQ社群、微信公眾號(hào)在線服務(wù),作者及時(shí)反饋!

        Python的Django框架是目前流行的一款重量級(jí)網(wǎng)站開(kāi)發(fā)框架,具備簡(jiǎn)單易學(xué)、搭建快速、功能強(qiáng)大等特點(diǎn)。本書(shū)從簡(jiǎn)單的HTML、CSS、JavaScript開(kāi)始介紹,再到Django的基礎(chǔ)知識(shí),融入了大量的代碼案例、重點(diǎn)提示、圖片展示,做到了手把手教授。本書(shū)基于Django 3.0.7版本、Python 3.8.5版本、Rest Framework 3.11.1版本、Vue.js 2.6.10版本、數(shù)據(jù)庫(kù)MySQL 80版本進(jìn)行講解。本書(shū)還提供了一個(gè)商業(yè)級(jí)別的項(xiàng)目案例,采用目前主流的前后端分離開(kāi)發(fā)技術(shù),以便讀者可以體驗(yàn)正式項(xiàng)目的開(kāi)發(fā)過(guò)程。熟練掌握本書(shū)內(nèi)容后,讀者將達(dá)到中級(jí)Web項(xiàng)目開(kāi)發(fā)工程師的技術(shù)水平

        五折專(zhuān)享,快快掃碼搶購(gòu)吧?。?/span>


           


        如果喜歡本文
        歡迎 在看留言分享至朋友圈 三連


         熱文推薦  





        ▼點(diǎn)擊閱讀原文,查看本書(shū)詳情~
        瀏覽 18
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            91人妻人人澡人人爽人人精品乱 | 国产日韩在线看 | 蜜桃媒AV成人片免费看 | 美女小嫩逼 | 色噜噜狠狠成人中文 | 青青色色网| 一级黄色片aaa | 宅男撸66国产精品 | 一级a免做一级做a爱性韩国 | 国产精品成人自拍 |