創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)公司網(wǎng)站設(shè)計(jì),為客戶量身定制各類網(wǎng)站建設(shè)業(yè)務(wù),包括企業(yè)型、電子商務(wù)型、成都響應(yīng)式網(wǎng)站建設(shè)、行業(yè)門戶型等各類網(wǎng)站,實(shí)戰(zhàn)經(jīng)驗(yàn)豐富,成功案例眾多。以客戶利益為出發(fā)點(diǎn),成都創(chuàng)新互聯(lián)公司網(wǎng)站制作為客戶規(guī)劃、按需規(guī)劃網(wǎng)站符合企業(yè)需求、帶有營(yíng)銷價(jià)值的網(wǎng)絡(luò)建站方案認(rèn)真對(duì)待每一個(gè)客戶,我們不用口頭的語言來吹擂我們的優(yōu)秀,上千多家的成功案例見證著我們的成長(zhǎng)。vue前端和django結(jié)合的方法?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!
vue和django的結(jié)合嘗試
使用vue進(jìn)行前端開發(fā)時(shí),如今也是工程化開發(fā),和django類似,也有一個(gè)工程目錄。開發(fā)過程中,會(huì)利用nodejs啟動(dòng)一個(gè)服務(wù)器,默認(rèn)訪問localhost:8080就可以打開頁面。
vue開發(fā)過程中會(huì)使用vue專有的文件后綴名.vue,這些內(nèi)容瀏覽器是無法識(shí)別的,因此開發(fā)完成后需要對(duì)項(xiàng)目進(jìn)行打包生成瀏覽器可以識(shí)別的js,css文件以及一個(gè)單頁面index.html。
django使用的就是最后生成的這幾個(gè)文件。
具體設(shè)置
vue項(xiàng)目由前端開發(fā)完成后,會(huì)通過命令npm run build 打包成一個(gè)dist目錄,其中包含一個(gè)index.html和static目錄
這兩項(xiàng)內(nèi)容是django最終需要的頁面。
static目錄和django的static目錄是同一個(gè)目錄,可直接覆蓋django的,settings中的配置不變,仍舊是原本的static路徑
index.html可放在模板目錄內(nèi),在settings中指定模板路徑即可,最后配置路由,路由如下:
path('', TemplateView.as_view(template_name='index.html')), path('index/', TemplateView.as_view(template_name='index.html'))
以上即可結(jié)合完成,其他的所有ajax請(qǐng)求,直接后臺(tái)返回?cái)?shù)據(jù)即可
開發(fā)過程中跨域問題的解決
vue開發(fā)過程中,ajax請(qǐng)求,既可以通過設(shè)置前端來訪問,也可以通過django的設(shè)置來允許訪問
vue的設(shè)置
vue的設(shè)置方式是在項(xiàng)目的config目錄下,修改index.js文件中proxyTable項(xiàng)
// 'http://localhost:7890' 表示的是要跨域請(qǐng)求的地址,vue的開發(fā)地址可能是端口8080,7890就等于是django的端口 // 如果請(qǐng)求的地址是:'http://localhost:7890/index_data' // 在請(qǐng)求時(shí)就可以寫成: '/apis/index_data' '/apis': { target: 'http://localhost:7890', changeOrigin: true, pathRewrite: { '^/apis': '' } }
django的設(shè)置
安裝第三方包 pip install django-cors-headers 這個(gè)包可以自動(dòng)給響應(yīng)頭中添加允許跨域的響應(yīng)頭
具體配置分兩步:
1、settings.py修改
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', # 注意放置順序 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
2、settings.py添加
一般情況下,只添加一項(xiàng):CORS_ORIGIN_ALLOW_ALL = False 即可
注意此為開發(fā)環(huán)境,生產(chǎn)環(huán)境需要關(guān)閉此項(xiàng)
感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)vue前端和django結(jié)合的方法大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。
本文名稱:vue前端和django結(jié)合的方法-創(chuàng)新互聯(lián)
文章位置:http://m.rwnh.cn/article40/ehdeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、企業(yè)建站、全網(wǎng)營(yíng)銷推廣、網(wǎng)站排名、動(dòng)態(tài)網(wǎng)站、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容