国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

超詳細(xì)Django+vue+vscode前后端分離搭建

這篇具有很好參考價(jià)值的文章主要介紹了超詳細(xì)Django+vue+vscode前后端分離搭建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、Django后端搭建

1.1 創(chuàng)建項(xiàng)目和app
django-admin startproject tman
python manage.py startapp tadmin

超詳細(xì)Django+vue+vscode前后端分離搭建

1.2 注冊(cè)app
INSTALLED_APPS = [
    'tadmin',
]
1.3 運(yùn)行項(xiàng)目
python manage.py runserver
1.4 配置mysql數(shù)據(jù)庫(kù)
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'taskmanage',
        'USER': 'root',
        'PASSWORD': '密碼',
        'HOST': '192.168.75.132',
        'PORT': '3306',
    }
}

在項(xiàng)目tman項(xiàng)目下的init.py中加入如下代碼

pip install pymysql
import pymysql
pymysql.version_info = (1, 4, 3, "final", 0)
pymysql.install_as_MySQLdb()

超詳細(xì)Django+vue+vscode前后端分離搭建

1.5 創(chuàng)建數(shù)據(jù)庫(kù)類

在tadmin的model.py中加入如下代碼

from django.db import models


class UserInfo(models.Model):
    username = models.CharField('用戶名', max_length=128)
    password = models.CharField('密碼', max_length=128)

    class Meta:
        verbose_name = '用戶信息'
        verbose_name_plural = '用戶信息'

    def __str__(self):
        return self.username

執(zhí)行如下命令創(chuàng)建數(shù)據(jù)庫(kù)

python manage.py makemigrations
python manage.py migrate
1.6 使用Django后臺(tái)進(jìn)行數(shù)據(jù)管理

在tadmin應(yīng)用目錄下加入如下代碼

from django.contrib import admin
from tadmin.models import UserInfo

admin.site.site_header = '任務(wù)管理系統(tǒng)'


class UserInfoAdmin(admin.ModelAdmin):
    list_display = ('id', 'username', 'password',)
    list_display_links = ('username',)
    list_per_page = 50


admin.site.register(UserInfo, UserInfoAdmin)

創(chuàng)建后臺(tái)管理員用戶

python manage.py createsuperuser

超詳細(xì)Django+vue+vscode前后端分離搭建

2、Django rest framework配置
pip install djangorestframework
# 暫時(shí)不裝也可以
pip install markdown
# 用于數(shù)據(jù)篩選
pip install django-filter

在settings中注冊(cè)framework

INSTALLED_APPS = [
    'rest_framework',
    'django_filters',
]
2.1 序列化

在app目錄下創(chuàng)建serializer.py,添加如下代碼

from tadmin.models import UserInfo
from rest_framework import serializers


class UserInfoSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserInfo
        fields = "__all__"
2.2 添加視圖

在app目錄下的view.py中加入如下代碼:

from rest_framework.viewsets import ModelViewSet
from tadmin.models import UserInfo
from tadmin.serializer import UserInfoSerializer
from tadmin.filter import UserInfoFilter
from django_filters.rest_framework import DjangoFilterBackend


class UserInfoViewSet(ModelViewSet):
    queryset = UserInfo.objects.all()
    serializer_class = UserInfoSerializer

    filter_class = UserInfoFilter
    filter_fields = ['username',]
    search_fields = ('username',)
2.3 添加路由

在app目錄下創(chuàng)建urls.py文件:

from django.urls import path, include
from rest_framework.routers import DefaultRouter
from tadmin.views import UserInfoViewSet

router = DefaultRouter()
router.register('UserInfo', UserInfoViewSet, basename='UserInfo')

urlpatterns = [
]

urlpatterns += [
    path('', include(router.urls)),
]
2.4 在項(xiàng)目根目錄下的urls中加入如下代碼
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/', include('tadmin.urls')),
]
2.5 api測(cè)試

http://127.0.0.1:8000/api/v1/UserInfo/

超詳細(xì)Django+vue+vscode前后端分離搭建

2.6 篩選和搜索功能配置

在app根目錄下創(chuàng)建filter.py文件

from django_filters import FilterSet, filters
from tadmin.models import UserInfo


class UserInfoFilter(FilterSet):
    name = filters.CharFilter(field_name='username', lookup_expr='icontains')

    class Meta:
        model = UserInfo
        fields = ('username',)

修改app目錄下的view文件:在這里插入代碼片

from django.shortcuts import render

from rest_framework.viewsets import ModelViewSet
from tadmin.models import UserInfo
from tadmin.serializer import UserInfoSerializer
from tadmin.filter import UserInfoFilter
from django_filters.rest_framework import DjangoFilterBackend


class UserInfoViewSet(ModelViewSet):
    queryset = UserInfo.objects.all()
    serializer_class = UserInfoSerializer

    filter_class = UserInfoFilter
    filter_fields = ['username']
    search_fields = ('username',)

在settings中注冊(cè)django_filters:

INSTALLED_APPS = [
    'django_filters',
]

# REST_FRAMEWORK增加全局過(guò)濾配置  
REST_FRAMEWORK = {  
 'DEFAULT_FILTER_BACKENDS': [  
     'django_filters.rest_framework.DjangoFilterBackend',
     'rest_framework.filters.SearchFilter',
 ],  
}
# 如果可以實(shí)現(xiàn)模糊查詢,則以下語(yǔ)句可省略
FILTERS_DEFAULT_LOOKUP_EXPR = 'icontains'

Django Rest Framework頁(yè)面出現(xiàn)Filters圖標(biāo)說(shuō)明配置成功

超詳細(xì)Django+vue+vscode前后端分離搭建

2.7 分頁(yè)設(shè)置

在settings.py中做如下修改

# REST_FRAMEWORK增加全局過(guò)濾配置  
REST_FRAMEWORK = {  
    # 設(shè)置分頁(yè)  
    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',  
    'PAGE_SIZE': 10,
}

超詳細(xì)Django+vue+vscode前后端分離搭建
超詳細(xì)Django+vue+vscode前后端分離搭建

3、自動(dòng)生成api文檔
pip install drf-yasg

在項(xiàng)目文件夾urls.py中做如下修改

INSTALLED_APPS = [
    'drf_yasg',  # swagger
]

在app的urls.py中做如下修改

from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
    openapi.Info(
        title="API平臺(tái)",
        default_version="v1",
        description="接口文檔",
        terms_of_service="",
        contact=openapi.Contact(email='2495128088@qq.com'),
        license=openapi.License(name="BSD License"),
    ),
    public=True
)

router = DefaultRouter()
router.register('UserInfo', UserInfoViewSet, basename='UserInfo')

urlpatterns = [
    path('docs/', schema_view.with_ui('swagger',cache_timeout=0), name='schema-swagger-ui'),
]

文檔查看文檔是否成功,http://127.0.0.1:8000/api/v1/docs/

超詳細(xì)Django+vue+vscode前后端分離搭建

二、vue前端搭建

1、前端工具及框架
  • node.js
  • npm
  • vue3
  • axios
  • Element plus
  • 前端開(kāi)發(fā)工具:VS Code
2、在Django項(xiàng)目的根目錄下創(chuàng)建前端文件
npm init webpack tmanfront

最終的文件目錄如下:

超詳細(xì)Django+vue+vscode前后端分離搭建

3、修改src/components/HelloWorld.vue中的代碼如下
<template>
    <div class="hello">
        <h1>{{ msg }}</h1>
        <ul>
            <li v-for="(user,index) in users" :key="index" style="display: block;">
                {{ index }}--{{ user.username }}--{{ user.password }}
            </li>
        </ul>
        <form action="">
            用戶名:<input type="text" placeholder="user name" v-model="inputUser.username"><br>

            密碼:<input type="text" placeholder="user password" v-model="inputUser.password"><br>
            <button type="submit" @click="userSubmit()">提交</button>
        </form>
    </div>
</template>

<script>
import { getUsers,postUser } from '../api/api.js';
export default {
    name:'hellouser',
    data () {
        return {
            msg:'Welcome to Your Vue.js App',
            users:[
                {username:'test1',password:'test1'},
                {username:'test2',password:'test2'}
            ],
            inputUser:{
                "username":"",
                "password":"",
            }
        }
    },
    methods:{
        loadUsers(){},
        userSubmit(){}
    },
    created: function(){
        this.loadUsers()
    }
}
</script>

啟動(dòng)前端項(xiàng)目,瀏覽器訪問(wèn)127.0.0.1:8080,可以看到剛寫(xiě)的頁(yè)面已經(jīng)更新上去了

超詳細(xì)Django+vue+vscode前后端分離搭建

4、前后端聯(lián)調(diào)

利用django-cors-headers模塊解決跨域問(wèn)題

pip install django-cors-headers

然后在項(xiàng)目settings.py中添加該模塊:

INSTALLED_APPS = [
    'corsheaders',
]

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware', # 需注意與其他中間件順序,這里放在最前面即可
    ...
]
# 支持跨域配置開(kāi)始
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True 

后端部分告于段落,接下來(lái)需要補(bǔ)充一下前端的邏輯,Vue框架現(xiàn)在一般都用axios模塊進(jìn)行網(wǎng)絡(luò)請(qǐng)求,這里沿用這種方式,下面是在前端項(xiàng)目中操作:
首先命令行安裝axios模塊,如果沒(méi)有安裝cnpm就還是用npm安裝:

cnpm install axios
或者
npm install axios

為了方便管理api請(qǐng)求的各種邏輯,在前端項(xiàng)目的src目錄下創(chuàng)建api目錄,然后創(chuàng)建api.js和index.js文件。index.js文件是對(duì)axios做配置:
/src/api/index.js

import Vue from 'vue'
import Axios from 'axios'

const axiosInstance=Axios.create({
    withCredentials:true
})

axiosInstance.interceptors.request.use((config)=>{
    config.headers['X-Requested-With'] = 'XMLHttpRequest'
    const regex = /.*csrftoken=([^;.]*).*$/
    config.headers['X-CSRFToken'] = document.cookie.match(regex) === null ? null : document.cookie.match(regex)[1]
    return config
})

axiosInstance.interceptors.response.use(
    response=>{
        return response
    },
    error=>{
        return Promise.reject(error)
    }
)

Vue.prototype.axios=axiosInstance

export default axiosInstance

api.js文件是對(duì)后端進(jìn)行請(qǐng)求,可以看到,獲取books列表和添加一本book各對(duì)應(yīng)于一個(gè)請(qǐng)求:

import axiosInstance from "./index";

const axios = axiosInstance
export const getUsers = () => { return axios.get(`http://127.0.0.1:8000/api/v1/UserInfo/`) }

export const postUser = (username, password) => { return axios.post(`http://127.0.0.1:8000/api/v1/UserInfo/`, { 'username': username, 'password': password }) }

然后更新HelloWorld.vue中的處理邏輯:

<template>
    <div class="hello">
        <h1>{{ msg }}</h1>
        <ul>
            <li v-for="(user,index) in users" :key="index" style="display: block;">
                {{ index }}--{{ user.username }}--{{ user.password }}
            </li>
        </ul>
        <form action="">
            用戶名:<input type="text" placeholder="user name" v-model="inputUser.username"><br>

            密碼:<input type="text" placeholder="user password" v-model="inputUser.password"><br>
            <button type="submit" @click="userSubmit()">提交</button>
        </form>
    </div>
</template>

<script>
import { getUsers,postUser } from '../api/api.js';
export default {
    name:'hellouser',
    data () {
        return {
            msg:'Welcome to Your Vue.js App',
            users:[
                {username:'test1',password:'test1'},
                {username:'test2',password:'test2'}
            ],
            inputUser:{
                "username":"",
                "password":"",
            }
        }
    },
    methods:{
        loadUsers(){
            getUsers().then(response=>{
                this.users=response.data
            })
        },
        userSubmit(){
            postUser(this.inputUser.username,this.inputUser.password).then(response=>{
                console.log(response)
                this.loadUsers()
            })
        }
    },
    created: function(){
        this.loadUsers()
    }
}
</script>

至此,一個(gè)簡(jiǎn)單的Django+vue前后端分離項(xiàng)目就已搭建完成,測(cè)試添加數(shù)據(jù)成功

超詳細(xì)Django+vue+vscode前后端分離搭建
超詳細(xì)Django+vue+vscode前后端分離搭建

可以看到,列表里面的數(shù)據(jù)是從后端讀取到的,同時(shí)前端的提交數(shù)據(jù)庫(kù)也能有對(duì)應(yīng)的操作,所以前后端至此是打通了。

5、前端打包

現(xiàn)階段是前后端分開(kāi)開(kāi)發(fā),但是當(dāng)最后要用的時(shí)候,還需要把代碼合在一起。
首先對(duì)前端項(xiàng)目進(jìn)行打包,這里用Vue的自動(dòng)打包,進(jìn)入前端的根目錄下:

npm run build

超詳細(xì)Django+vue+vscode前后端分離搭建

可以看到前端項(xiàng)目中多出了一個(gè)dist文件夾,這個(gè)就是前端文件的打包結(jié)果。需要把dist文件夾復(fù)制到tman項(xiàng)目文件夾中

超詳細(xì)Django+vue+vscode前后端分離搭建

然后對(duì)settings.py文件進(jìn)行相應(yīng)的修改,其實(shí)就是幫django指定模版文件和靜態(tài)文件的搜索地址:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'dist')],
        ...
    },
]
...
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'dist/static'),
]

最后在項(xiàng)目根urls.py文件中配置一下入口html文件的對(duì)應(yīng)路由:

from django.views.generic.base import TemplateView
urlpatterns = [
    path('', TemplateView.as_view(template_name='index.html'))
]

重新啟動(dòng)項(xiàng)目,這次用瀏覽器訪問(wèn)127.0.0.1:8000,即django服務(wù)的對(duì)應(yīng)端口即可。
可以看到,項(xiàng)目的交互是正常的,符合我們的預(yù)期。

超詳細(xì)Django+vue+vscode前后端分離搭建

三、總結(jié)

本文以一個(gè)非常簡(jiǎn)單的demo為例,介紹了利用django+drf+vue的前后端分離開(kāi)發(fā)模式,基本可以算是手把手入門。有了這個(gè)小demo之后,不管是前端頁(yè)面還是后端功能,都可以做相應(yīng)的擴(kuò)展,從而開(kāi)發(fā)出更加復(fù)雜使用的網(wǎng)站。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-474979.html

到了這里,關(guān)于超詳細(xì)Django+vue+vscode前后端分離搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 三:Spring Boot后端與Vue前端連接

    SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 三:Spring Boot后端與Vue前端連接

    系列文章: SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 一:Vue前端設(shè)計(jì) SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫(kù)連接 SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 三:Spring Boot后端與Vue前端連接 SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 四:用戶管理功能實(shí)現(xiàn) SpringBoot + Vue前后

    2024年02月12日
    瀏覽(47)
  • 全面解析若依框架(springboot-vue前后分離--后端部分)

    全面解析若依框架(springboot-vue前后分離--后端部分)

    前端啟動(dòng) 后端啟動(dòng) 創(chuàng)建數(shù)據(jù)庫(kù)ry-vue,導(dǎo)入ry_2021xxxx.sql,quartz.sql,加載好依賴直接啟動(dòng)。 后端技術(shù) SpringBoot Spring Security JWT MyBatis Druid Fastjson 分頁(yè)實(shí)現(xiàn) 導(dǎo)入導(dǎo)出 上傳下載(框架使用的簡(jiǎn)單,不做講解) 權(quán)限控制 事務(wù)管理(這里使用@Transactional,不做講解,具體和Spring的8種事務(wù)

    2024年01月16日
    瀏覽(54)
  • 【SpringBoot+Vue】全網(wǎng)最簡(jiǎn)單但實(shí)用的前后端分離項(xiàng)目實(shí)戰(zhàn)筆記 - 后端

    【SpringBoot+Vue】全網(wǎng)最簡(jiǎn)單但實(shí)用的前后端分離項(xiàng)目實(shí)戰(zhàn)筆記 - 后端

    配套視頻地址:https://www.bilibili.com/video/BV1dG4y1T7yp/ 如果您需要原版筆記,請(qǐng)up喝口水,可以上我的淘寶小店 青菜開(kāi)發(fā)資料 購(gòu)買,或點(diǎn)擊下方鏈接直接購(gòu)買: 源碼+PDF版本筆記 源碼+原始MD版本筆記 感謝支持! 創(chuàng)建springboot項(xiàng)目:2.7.8 pom依賴 yml 測(cè)試 編寫(xiě)代碼生成器 啟動(dòng)類加注

    2024年02月04日
    瀏覽(19)
  • Windows服務(wù)器,通過(guò)Nginx部署VUE+Django前后端分離項(xiàng)目

    Windows服務(wù)器,通過(guò)Nginx部署VUE+Django前后端分離項(xiàng)目

    基本說(shuō)明 安裝 Nginx 部署 VUE 前端 部署 Django 后端 Django admin 靜態(tài)文件(CSS,JS等)丟失的問(wèn)題 總結(jié) 本文介紹了在 windows 服務(wù)器下,通過(guò) Nginx 部署 VUE + Django 前后端分離項(xiàng)目。本項(xiàng)目前端運(yùn)行在 80 端口,服務(wù)器端運(yùn)行在 8000 端口。因此本項(xiàng)目使用 Django 的 runserver 命令進(jìn)行部署

    2024年02月05日
    瀏覽(31)
  • 開(kāi)源django+mysql+vue3前后端分離商城baykeShop使用指南

    開(kāi)源django+mysql+vue3前后端分離商城baykeShop使用指南

    baykeShop(拜客商城系統(tǒng))是一款全開(kāi)源Python棧商城系統(tǒng),后端依托django強(qiáng)大的框架體系,本項(xiàng)目融合了django的傳統(tǒng)模版體系,同時(shí)輕微結(jié)合了前后端分離的開(kāi)發(fā)方式,在不同場(chǎng)景選擇了不同的技術(shù)棧,使其更具學(xué)習(xí)和研究?jī)r(jià)值,并且很好的打包為一個(gè)Python包文件,使其二次開(kāi)

    2024年02月11日
    瀏覽(69)
  • 川西旅游網(wǎng)系統(tǒng)-前后端分離(前臺(tái)vue 后臺(tái)element UI,后端servlet)

    川西旅游網(wǎng)系統(tǒng)-前后端分離(前臺(tái)vue 后臺(tái)element UI,后端servlet)

    前臺(tái):tour_forword: 川西旅游網(wǎng)前端----前臺(tái) (gitee.com) 后臺(tái):tour_back: 川西旅游網(wǎng)-------后臺(tái) (gitee.com) 后端 :tour: 川西旅游網(wǎng)------后端 (gitee.com)

    2024年02月07日
    瀏覽(25)
  • 基于Ant DesignPro Vue + SpringBoot 前后端分離 - 后端微服化 + 接口網(wǎng)關(guān) + Nacos

    基于Ant DesignPro Vue + SpringBoot 前后端分離 - 后端微服化 + 接口網(wǎng)關(guān) + Nacos

    通過(guò)Ant DesignPro Vue + SpringBoot 搭建的后臺(tái)管理系統(tǒng)后,實(shí)現(xiàn)了前后端分離,并實(shí)現(xiàn)了登錄認(rèn)證,認(rèn)證成功后返回該用戶相應(yīng)權(quán)限范圍內(nèi)可見(jiàn)的菜單。 后端采用SpringCloud構(gòu)建微服,采用SpringCloud Gateway做為服務(wù)網(wǎng)關(guān),采用Nacos做為統(tǒng)一配置中心,并在服務(wù)網(wǎng)關(guān)部分解決了前端跨域調(diào)

    2024年02月12日
    瀏覽(17)
  • SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫(kù)連接

    SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫(kù)連接

    系列文章: SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 一:Vue前端設(shè)計(jì) SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 二:Spring Boot后端與數(shù)據(jù)庫(kù)連接 SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 三:Spring Boot后端與Vue前端連接 SpringBoot + Vue前后端分離項(xiàng)目實(shí)戰(zhàn) || 四:用戶管理功能實(shí)現(xiàn) SpringBoot + Vue前后

    2024年02月11日
    瀏覽(54)
  • 遙遙領(lǐng)先,免費(fèi)開(kāi)源的django4-vue3前后端分離項(xiàng)目

    遙遙領(lǐng)先,免費(fèi)開(kāi)源的django4-vue3前后端分離項(xiàng)目

    本項(xiàng)目前端基于當(dāng)下流行且常用的vue3作為主要技術(shù)棧進(jìn)行開(kāi)發(fā),融合了typescript和element-plus-ui,提供暗黑模式和白晝模式兩種主題以及全屏切換,開(kāi)發(fā)bug少,簡(jiǎn)單易學(xué),項(xiàng)目后端采用了python的django框架作為開(kāi)發(fā)模塊。 目前正在搭建到網(wǎng)絡(luò)服務(wù)器中。項(xiàng)目會(huì)不定期更新喜歡的朋

    2024年02月04日
    瀏覽(116)
  • 基于Ant DesignPro Vue + SpringBoot 前后端分離 - 后端微服化 + 接口網(wǎng)關(guān) + Nacos + Sentinel

    基于Ant DesignPro Vue + SpringBoot 前后端分離 - 后端微服化 + 接口網(wǎng)關(guān) + Nacos + Sentinel

    通過(guò)Ant DesignPro Vue + SpringBoot 搭建的后臺(tái)管理系統(tǒng)后,實(shí)現(xiàn)了前后端分離,并實(shí)現(xiàn)了登錄認(rèn)證,認(rèn)證成功后返回該用戶相應(yīng)權(quán)限范圍內(nèi)可見(jiàn)的菜單。 后端采用SpringCloud構(gòu)建微服,采用SpringCloud Gateway做為服務(wù)網(wǎng)關(guān),采用Nacos做為統(tǒng)一配置中心,并在服務(wù)網(wǎng)關(guān)部分解決了前端跨域調(diào)

    2024年02月11日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包