這是一篇什么文章?
一篇你對測試開發(fā)工作感興趣,想了解系統(tǒng)工作邏輯的文章。
一篇是你在開始動手搭建環(huán)境前需要了解各工具原理的文章。
這是一篇你真正開始前需要查閱的文章。
本文介紹了前后端工作原理,前后端搭建的流程、搭建過程中需要用到的技術以及開發(fā)環(huán)境版本
![]()
一、前后端如何工作
![]()
后端開發(fā)(Django+Rest Framework+MySQL):
Django負責處理HTTP請求和響應,以及URL路由的配置。它接收來自前端的HTTP請求,并根據(jù)URL將請求分發(fā)給相應的視圖函數(shù)進行處理。
Rest Framework是Django的擴展,用于快速構建RESTful API接口。通過Rest Framework,可以定義API視圖和序列化器,實現(xiàn)數(shù)據(jù)的序列化和反序列化,從而方便地與前端進行數(shù)據(jù)交互。
MySQL是一個關系型數(shù)據(jù)庫,用于存儲后端的數(shù)據(jù)。
前端開發(fā)(Vue+Element UI):
Vue是一種現(xiàn)代的JavaScript框架,用于構建用戶界面。Vue提供了豐富的組件和模塊,可以幫助開發(fā)者構建交互式的單頁面應用(SPA)。
Element UI是一個基于Vue的UI組件庫,提供了豐富的預定義組件,用于快速搭建美觀的用戶界面。
前后端交互:
后端通過Django Rest Framework提供API接口,前端通過Vue發(fā)起HTTP請求調(diào)用這些API接口。
前端通過HTTP請求向后端發(fā)送數(shù)據(jù)請求,后端根據(jù)請求進行相應的數(shù)據(jù)處理,并返回響應數(shù)據(jù)給前端。
前端接收到后端返回的數(shù)據(jù),并根據(jù)數(shù)據(jù)更新頁面展示,實現(xiàn)與用戶的交互。
總體而言,這種前后端分離的開發(fā)模式有助于實現(xiàn)前后端開發(fā)的解耦,使得各自的開發(fā)工作更加專注和高效。前端負責用戶界面的呈現(xiàn)和交互,后端負責數(shù)據(jù)處理和業(yè)務邏輯,通過API接口進行數(shù)據(jù)傳輸和交互,從而實現(xiàn)一個完整的Web應用。
二、搭建流程
2.1后端搭建流程
安裝相關包->創(chuàng)建工程->后端依賴(pipenv)創(chuàng)建虛擬環(huán)境->后端服務配置啟動->后端創(chuàng)建子應用->后端Rest Framework->數(shù)據(jù)庫配置
簡要說明:
安裝相關包:在開始之前,首先需要安裝Python和pip,然后安裝Django等相關包,可以使用pip命令來安裝。
創(chuàng)建工程:使用Django的命令行工具創(chuàng)建Django項目,例如:django-admin startproject projectname。
后端依賴(pipenv)創(chuàng)建虛擬環(huán)境:建議使用pipenv來創(chuàng)建和管理虛擬環(huán)境,以便隔離項目的依賴和環(huán)境。
后端服務配置啟動:在虛擬環(huán)境下,通過Django的manage.py啟動服務,例如:python manage.py runserver。
后端創(chuàng)建子應用:根據(jù)項目的需要,可以創(chuàng)建多個子應用(app)來管理不同的功能模塊。
后端Rest Framework:使用Django Rest Framework來構建RESTful API,方便前端和其他應用調(diào)用后端接口。
數(shù)據(jù)庫配置:配置Django項目的數(shù)據(jù)庫連接,通常使用MySQL作為后端數(shù)據(jù)庫,可以在settings.py中進行配置。
2.2前端搭建流程
創(chuàng)建工程(模板)->前端依賴(npm install)->前端服務配置啟動
簡要說明:
創(chuàng)建工程(模板):可以使用Vue腳手架工具或其他模板工具來創(chuàng)建Vue項目的初始結構。
前端依賴(npm install):在項目目錄下執(zhí)行npm install命令,安裝項目所需的前端依賴包,這些依賴包通常存儲在package.json文件中。
前端服務配置啟動:在項目目錄下執(zhí)行npm run serve命令,啟動前端開發(fā)服務器,可以在瀏覽器中預覽項目。
三、關鍵技術介紹
1、后端為什么要創(chuàng)建虛擬環(huán)境,創(chuàng)建虛擬環(huán)境可以達到什么效果?
隔離項目依賴:通過創(chuàng)建后端虛擬環(huán)境,每個項目都擁有獨立的Python解釋器和包安裝目錄,這樣可以避免不同項目之間的依賴沖突。每個虛擬環(huán)境只包含該項目所需的依賴,使得項目可以在獨立的環(huán)境中運行,而不受其他項目的影響。
確保依賴一致性:虛擬環(huán)境通常會配合使用Pipenv等工具來管理項目的依賴,這樣可以確保項目在不同環(huán)境中安裝相同的依賴版本,從而避免由于依賴版本不一致而引發(fā)的錯誤。
提高項目可移植性:將項目的依賴放在虛擬環(huán)境中,可以使得項目在不同的計算機或服務器上都能輕松地部署和運行,而不需要擔心依賴問題。
簡化依賴管理:虛擬環(huán)境可以將項目所需的依賴以及其版本信息保存在一個文件中(例如Pipfile.lock),這樣可以方便地重現(xiàn)項目的開發(fā)環(huán)境,使得依賴的安裝和管理更加簡單和自動化。
2、Pipenv介紹
Pipenv是Python的一個包管理工具和虛擬環(huán)境管理工具,它是為了解決Python項目中依賴管理和虛擬環(huán)境創(chuàng)建的問題而開發(fā)的。Pipenv結合了pip(Python的包管理工具)和virtualenv(Python的虛擬環(huán)境管理工具)的功能,提供了更方便、更高級的包管理和虛擬環(huán)境管理功能。
Pipenv的主要特點和功能包括:
自動創(chuàng)建虛擬環(huán)境:在使用Pipenv安裝項目依賴時,它會自動創(chuàng)建一個虛擬環(huán)境,確保項目的依賴不會與其他項目沖突。
管理依賴:Pipenv會自動地管理項目的依賴關系,并將依賴信息保存在Pipfile和Pipfile.lock文件中,這樣可以確保項目在不同環(huán)境中安裝相同的依賴版本。
簡化依賴安裝:使用Pipenv安裝依賴非常簡單,只需要運行一個命令即可,而不需要手動管理依賴的安裝。
提供更友好的命令行界面:Pipenv提供了一組易于使用的命令,使得包管理和虛擬環(huán)境管理更加直觀和簡便。
支持開發(fā)模式:Pipenv支持將項目的開發(fā)依賴和運行時依賴分開,這樣可以減少項目打包時的冗余依賴。
3、Django Rest Framework介紹
Django Rest Framework(簡稱DRF)是一個用于構建Web API的強大框架,它是基于Django(一個流行的Python Web框架)開發(fā)的。DRF提供了一系列工具和功能,使得構建RESTful API變得簡單、靈活和高效。
DRF的主要特點和功能包括:
序列化:DRF提供了序列化器,可以將數(shù)據(jù)對象轉換成JSON等格式,以便于在API中進行傳輸。同時,它也可以將傳入的JSON數(shù)據(jù)反序列化為數(shù)據(jù)對象,便于在后端進行處理。
視圖:DRF提供了各種視圖類,用于處理API請求,并返回適當?shù)捻憫0ɑ诤瘮?shù)的視圖和基于類的視圖,還有通用視圖和視圖集等。
路由:DRF提供了靈活的路由功能,用于將API請求映射到相應的視圖處理函數(shù)上。
認證和權限:DRF支持各種認證和權限控制方式,可以保護API的安全性。
分頁和過濾:DRF提供了分頁和過濾功能,便于處理大量數(shù)據(jù)和篩選查詢結果。
強大的請求和響應處理:DRF支持各種數(shù)據(jù)格式的請求和響應處理,包括JSON、XML、HTML等。
API文檔生成:DRF自帶的Browsable API功能可以生成易于閱讀和理解的API文檔,方便開發(fā)人員和團隊的協(xié)作。
最后:在我的V:atstudy-js,可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構開發(fā)測試框架、性能測試、安全測試等。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.