0. 服务架构
k8snode01 192.168.89.133 开发平台
k8snode02 192.168.89.134 代码存放地 制品库
k8smaster 192.168.89.132 线上平台 [URI: http://www.项目名.com,本地hosts文件可以解析一下]
1. VUE项目搭建流程:
1. 安装node.js
2. 安装npm , 使用npm 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
3. 安装 vue-cli
cnpm install -g vue-cli
4. 初始化项目
vue init webpack todolist
5. 安装相应的npm依赖
cnpm install
6. 修改项目监听地址
vim config/index.js
host: '192.168.89.133'
port: 80
7. 运行项目
npm run dev
Your application is running here: http://192.168.89.133:80
占用当前终端
2. VUE项目部署升级
vim /usr/local/bin/makeup
#!/bin/bash
#/usr/local/bin/makeup
read -p 'service name:' servername
if [ ! -d /backup/${servername} ];then
mkdir /backup/${servername}
fi
cd /opt/vue-pros/${servername}/
cnpm run build
mv dist ${servername}
zip -r ${servername}.zip ${servername}
# 上传到制品库
ssh k8snode02 ls /backup/${servername} &> /dev/null
if [ $? -ne 0 ] ; then
ssh k8snode02 mkdir -p /backup/${servername}
fi
scp ${servername}.zip k8snode02:/backup/${servername}/${servername}-`date +%Y%m%d-%H%M%S`.zip
# 部署到服务器
scp ${servername}.zip k8smaster:/usr/local/nginx/html/
ssh k8smaster mv /usr/local/nginx/html/${servername} /tmp/${servername}-`date +%Y%m%d-%H%M%S`
ssh k8smaster unzip /usr/local/nginx/html/${servername}.zip -d /usr/local/nginx/html
ssh k8smaster rm -f /usr/local/nginx/html/${servername}.zip
rm -rf ${servername} ${servername}.zip
echo ${servername}"update finished"
chmod +x /usr/local/bin/makeup
3. VUE中引入bootstrap,jquery
安装依赖包
cnpm install jquery --save-dev
cnpm install popper.js --save-dev
cnpm install bootstrap --save-dev
vim main.js
import 'bootstrap'
import './assets/css/bootstrap.min.css'
import './assets/css/bootstrap-reset.css'
import './assets/css/assets/font-awesome/css/font-awesome.css'
引入相关js,css文件
4. 配置路由
https://segmentfault.com/a/1190000014441507?utm_source=tag-newest
vim router/index.js
... ...
const router = new Router({
routes: [
{ path: '/login', name: 'Login', component: Login },
{ path: '/hello', name: 'Hello', component: Hello },
{ path: '/404', name: 'page404', component: Page404 },
{
path: '/',
redirect: '/Login',
component: Login
},
{ path: '/base', name: 'Base', component: Base,
children: [
{ path: 'filebeat',name: 'Filebeat',component: Filebeat },
{ path: 'baseline',name:"Baseline", component: Baseline },
{ path: 'deploy',name: 'Deploy', component: Deploy }
]
},
{
path: '*',
redirect: '/404',
name: 'Page404',
component: Page404
},
]
})
export default router
5. 解决地址栏出现#问题
1). vim index.html
... ...
const router = new Router({
mode: 'history',
... ...
2). 修改nginx代理
k8smaster[服务所在机器,在location下添加try_files]
vim /usr/local/nginx/conf/conf.d/todolist.cnf
server {
listen 80;
server_name www.todolist.com;
location / {
try_files $uri $uri/ /index.html;
root /usr/local/nginx/html/todolist;
index index.html index.htm;
}
}
6. Vue+django实现登录问题
1). 安装axios
cnpm install axio
2). 修改main.js, 设置默认header
... ...
import {setCookie,getCookie} from './assets/js/cookie'
import axios from 'axios'
Vue.prototype.$axios = axios;
axios.defaults.headers.post["X-CSRFToken"] = getCookie("csrftoken");
... ...
3). 编写cookie.js
vim assets/js/cookie.js
// 用export把方法暴露出来
// 设置cookie
export function setCookie(key,value) {
var exdate = new Date(); //获取时间
exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000);
window.document.cookie = key + "=" + value + ";path=/;expires=" + exdate.toGMTString();
}
// 读取cookie
export function getCookie(param) {
var c_param = '';
if (document.cookie.length > 0){
var arr = document.cookie.split('; '); //这里显示的格式需要切割一下自己可输出看下
for( var i=0;i<arr.length;i++){
var arr2 = arr[i].split('=');
if (arr2[0] === param){
c_param = arr2[1];
}
}
return c_param;
}
}
// 删除cookie
export function delCookie(key) {
var exdate = new Date(); //获取时间
exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000);
window.document.cookie = key + "=" + '' + ";path=/;expires=" + exdate.toGMTString();
}
4). 修改 config/index.js , 给后端请求加前缀,以作区分
proxyTable: {
'/api': {
target: 'http://192.168.89.133:80',
changeOrigin: true,
pathRewrite: {
'^/api': '' // http://192.168.89.133:80/user/add 可以写成 '/api/user/add'
}
}
},
5). Login.vue页面配置
a. 设置需要参数
... ...
data = {
username: '',
userpass: '',
csrfmiddlewaretoken: '',
};
... ...
b. 获得csrfmiddlewaretoken
mounted () {
var vm = this;
vm.$axios({
method: 'get',
baseURL: '/api',
url:'/accounts/login/', // django默认登录页面
})
.then(function(response){
const regex = /csrfmiddlewaretoken' value='(.*)'/gm;
var arr, reg = new RegExp("csrfmiddlewaretoken' value='(.*)'");
if (arr === response.data.match(reg))
vm.form.csrfmiddlewaretoken = unescape(arr[1])
else
console.log('not found crsf value')
})
},
c. 提交登录信息
login () {
if( this.username === '' || this.userpass === ''){
alert('用户名或密码不能为空')
}else {
var vm = this;
this.$axios({
method: 'post',
baseURL: '/api',
url: '/accounts/login/?next=/api/public/getuserinfo',
data: vm.data,
headers: {
'Content-Type': 'application/x-www-form-urlencoded' //django 登录默认是form表单,需要添加
},
transformRequest: [ // django 登录默认是form表单,axios默认是json格式,说以发送数据要通过transformRequest转换为form格式
function (data) {
let ret = '';
for(let it in data){
ret += encodeURIComponent(it)+ '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}
]
}).then(function (response) {
if(response.data.code === 0){
setCookie('username',this.username);
window.location='/base';
}else {
vm.$message.error('Login failed!!');
}
});
}
}
6. 简单路由校验配置
vim route/index.js
router.beforeEach(function (to, from , next) {
console.log('to',to.name);
function IsLogin() {
console.log('login check....');
if (getCookie('username') !== undefined){
return true
}else {
return false
}
}
if(IsLogin()){
console.log('login true');
if(to.name === 'login'){
next()
}else {
next()
}
}else{
console.log('login false');
if(to.name === 'login'){
router.push({name: 'login'})
}
}
});
相关推荐
spyglass之功耗分析
用于功耗分析的软件除了ptpx外,spyglass也可以。ptpx的功耗分析是基于netlist(网表)进行的,一般用于分析综合后的pre功耗和P&R后的post功耗,但这已经是项目进行到比较后期了,如果后期发现功耗数据与我们目标功耗相差较大,则意味着需要功耗优化,这时有可能会将项目计划节点延迟。如果在前期designer可以获得设计模块的功耗数据,可提早优化功耗,spyglass则为designer提供了一个很好的手段去评估功耗,从而提前优化功耗。
vue-4
style的默认样式是作用到哪里的?scoped的作用是什么?style中推不推荐加scoped?data写成函数的目的是什么?组件通信,就是指组件与组件之间的数据传递组件的数据是独立的,无法直接访问其他组件的数据。想使用其他组件的数据,就需要组件通信组件关系分类有哪两种父子组件通信的流程是什么?父向子子向父组件上 注册的一些 自定义属性1.非父子组件传值借助什么?2.什么是事件总线3.发送方应该调用事件总线的哪个方法4.接收方应该调用事件总线的哪个方法。
10xGenomics Loupe Browser实战指南:从数据导入到细胞注释全流程解析
本文提供了10xGenomics Loupe Browser的实战指南,详细解析了从数据导入到细胞注释的全流程。作为一款强大的可视化工具,Loupe Browser能帮助研究者直观探索单细胞测序数据,通过交互式操作进行细胞选择、差异基因分析和细胞类型注释,是单细胞数据分析入门和结果验证的高效平台。
官宣!Vue 4 要来了!一文读懂 Vue 4 的颠覆性变化与全新特性
好家伙,前端圈又过年了。Vue 官方正式官宣下一代大版本 Vue 4 的发布计划,这一次不是简单的小修小补,而是一场直击框架底层的"手术"——Vapor 模式正式转正、虚拟 DOM 不再是必选项、打包体积直接砍掉一半多、还接轨了 React Server Components。
2025海外代理IP深度横评:Bright Data、IPFoxy、SmartProxy等六大服务商实战对比
本文深度横评2025年六大海外代理IP服务商(Bright Data、IPFoxy、SmartProxy、IPIPGO、Kookeey及青果网络),基于实战测试数据,从IP池质量、速度稳定性、性价比等维度进行对比。针对跨境电商、数据爬虫、社交媒体管理等不同业务场景,提供精准的选购指南与避坑建议,帮助企业用户根据自身需求选择最合适的代理IP解决方案。
基于Android平台下的健康管理APP/基于android的健康管理系统
随着网络科技的发展,移动智能终端逐渐走进人们的视线,相关应用越来越广泛,并在人们的日常生活中扮演着越来越重要的角色。因此,关键应用程序的开发成为影响移动智能终端普及的重要因素,设计并开发实用、方便的应用程序具有重要的意义和良好的市场前景。Android技术作为当前最流行的操作平台,自然也存在着大量的应用服务需求。 本课题研究的是基于Android技术平台的健康管理APP,开发这款健康管理APP主要是为了帮助用户可以不用约束时间与地点进行所需信息。本文详细讲述了健康管理APP的界面设计及使用,主要包括界面的
Vue4进阶指南:从零到项目实战(上)
当您翻开本书的篇章,您开启的不仅是一段技术旅程,更是与现代前端之美的相遇。Vue.js 以其渐进式的哲学、响应式的魔法和组件化的艺术,十年间照亮了无数开发者的创造之路。而今 Vue4 携更强大的类型支持、更极致的性能优化、更深刻的 TSX 融合而来,我们站在了探索前端优雅范式的新起点。 Vue4 不是升级,而是进化。以 响应式魔法 为舟,TSX 类型 为桨,穿越Composition的星河,登陆工程化的彼岸。从第一行模板到架构设计,本书将黑暗中的摸索变为星光下的航路。启程吧,资深开发者的蜕变就在此刻。
避坑指南:解决‘Logical volume contains a filesystem in use’错误,顺利完成LVM根目录扩容
本文详细解析了Linux系统中LVM根目录扩容时遇到的‘Logical volume contains a filesystem in use’错误,提供了从错误诊断到实战解决方案的完整指南。通过动态扩容技术、单用户模式操作和LVM快照等方案,帮助管理员顺利完成根目录扩容,避免数据丢失和系统崩溃。
Vue - 4( 8000 字 Vue2 入门级教程)
Vue2 框架入门级教程第四篇,8000字详解
漏检率从23%降至1.3%:YOLOv8交通车辆计数与违章识别完整落地方案
本文分享了基于YOLOv8+ByteTrack的交通视频分析系统实战经验,针对车辆计数和违章识别两大核心功能,提出了完整的工程化解决方案。系统采用边缘计算架构,单张GTX 1660即可稳定处理8路1080P视频流,实现了白天98.7%、夜间96%以上的车辆计数准确率。文章详细剖析了交通视频分析的四大落地痛点,系统架构设计思路,以及遮挡处理、光照适应、多路并发等关键技术优化方案,重点介绍了车辆计数三重校验机制和三类违章识别的工程实现细节。通过ROI裁剪、TensorRT加速、动态抽帧等优化手段,显著提升了系统
52-Halcon-- smooth_object_model_3d函数功能(滑处理3D对象模型)
Halcon中smooth_object_model_3d算子详解 该算子用于3D模型平滑处理,提供三种算法:'laplacian'(快速去噪)、'taubin'(高质量防收缩)和'low_pass'(频域滤波)。核心参数包括迭代次数(默认5)、平滑强度(0-1)和边缘保护选项。典型应用包括扫描数据去噪、CAD模型光顺和逆向工程优化。支持自适应平滑、结合模型简化等高级技巧,并可通过分块处理优化大型模型性能。参数组合需根据具体场景选择,如快速去噪推荐拉普拉斯方法(5次迭代,强度0.3),特征保持推荐低通滤波(
vuex4快速入门
自从 vue2 升级到 vue3 之后,vue-router 从 3.x 升级到了 4.x,vuex 也从 3.x 升级到了 4.x。自从语法发生了较大的变化之后,其他的生态库也必须同步更新了。 现在的 vuex 版本是 4.0.0-rc.2,目前还是预览版本,可以通过下面的命令安装: npm install vuex@next --save 每一个 Vuex 应用的核心就是 store(仓库)。“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state)。 安装 Vuex 之后,让我
【Claude】权限被拒绝 (Permission Denied) 全场景排查 — 已解决
权限配置是 Claude Code 安全使用的核心机制。通过合理的 allow/deny 规则、正确的通配符使用、子代理独立配置、定期安全审计,可以在保证安全性的同时不影响开发效率。deny 优先:deny 规则优先级高于 allow,先保护敏感资源通配符精确单层匹配,**递归匹配,Bash(cmd*)允许带参数最小权限:只允许必要的操作,避免Bash(*)等危险规则CI 用 skip:Headless 模式用避免挂起子代理独立:每个子代理单独配置权限,不自动继承保护密钥:deny.env。
云计算之VUE开发【下】
一, 背景 云计算之VUE开发【上】结尾的配置有些问题,此处继续优化改造。 CSRF(Cross Site Request Forgery protection),中文简称跨站请求伪造。 Vue-Django csrftoken这个问题卡了我好久,今天终于有结果了,整理一下,供大家参考,如果文档有什么地方描述不清楚了,望指正。 看源码这里还是有些乱的,大家可以...
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
云计算之VUE-Django开发
一, 背景 前台Vue项目构建部署到nginx服务器上,接下来部署后台,不再使用python managy.py runserver 0.0.0.0:10082测试方式,而是使用 uwsgi 启动 django 二, 部署流程 [在虚拟环境中] 0. . /root/venv/bin/activate 1. settings.py STATIC_URL ...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
java基于云计算的在线教育平台设计与开发vue+springboot
云计算技术为在线教育平台提供了强大的计算和存储能力,能够支持大规模用户同时在线学习,提高了教育资源的利用效率。在线教育平台可以突破地域和时间的限制,实现全球范围内的教学和学习,为学生提供更广阔的学习机会。云计算技术可以提供灵活的扩展性和弹性,使得在线教育平台能够根据用户需求进行动态调整和扩展,提供更好的用户体验。课题特色:设计和开发一个全面的在线教育平台,包括课程管理、学生管理、教师管理、在线学习等功能模块,满足学生、教师和管理者的各种需求。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
云计算之VUE-Django开发——数据导出到Excel表
项目开发需要用到VUE框架,还要将数据导出到Excel表中,之前使用ExcelGen框架,现在整合到VUE中后无法使用,顾切换以下VUE框架来实现生产需求。 1、安装3个依赖包并导入2个js包: cnpm install -S file-saver xlsx(这里其实安装了2个依赖) cnpm install -D script-loader 2、在src目录下新建一个excel文件夹引入...
云计算之VUE-Django开发整合图
之前有三篇写了vue django前后端分离的文章,今天整理成思维导图,上传对应图片供大家一起学习。 最后,知识无止境,后面再持续更新优化。
springboot基于云计算的在线教育平台设计与开发
本文所设计的基于云计算的在线教育平台系统的设计与实现拥有前端和后端,前端使用Vue.js框架和创建,后端使用Springboot框架创建,开发语言采用Java,使用Mysql数据库对后台数据进行存储。将IDEA作为主要的开发工具。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。本文详细介绍了该基于云计算的在线教育平台系统的设计过程,并通过全面测试,完善了预期的功能。
java+springboot基于云计算的在线教育平台(源码+vue+部署文档+前后端分离等)
💗博主介绍:✨全网拥有20W+粉丝、优快云作者、博客专家、全栈领域优质创作者、平台优质Java创作者、专注于Java、小程序、python、安卓技术领域和毕业项目实战✌💟!✨💗👇🏻 精彩专栏 推荐订阅👇🏻计算机毕业设计设计精品实战案例✅本文所设计的基于云计算的在线教育平台系统的设计与实现拥有前端和后端,前端使用Vue.js框架和创建,后端使用Springboot框架创建,开发语言采用Java,使用Mysql数据库对后台数据进行存储。将IDEA作为主要的开发工具。
python基于云计算的在线教育系统
本文所设计的基于云计算的在线教育平台系统的设计与实现拥有前端和后端,前端使用Vue.js框架和创建,后端使用django/flask框架创建,开发语言采用python,使用Mysql数据库对后台数据进行存储。将pycharm作为主要的开发工具。接着进行系统的需求分析、功能设计、数据库设计,最后进行编码实现。
**标题:全面掌握技术栈:从前端到后端,再到云计算与运维的深度解析**在当今这个技术日新月异的时代,一个全面的技术栈对于任何一位开发者来说都是至关重要的。本文将带领大家从前端开发到后端开发,再到云计算
在当今这个技术日新月异的时代,一个全面的技术栈对于任何一位开发者来说都是至关重要的。本文将带领大家从前端开发到后端开发,再到云计算与运维的各个领域进行深入探讨,并辅以代码、命令及流程图等实例,帮助大家更好地理解与掌握。例如,我们可以使用Python的Django框架进行Web开发,Django提供了丰富的模板系统和强大的ORM框架,使得前端开发变得更加简单高效。Vue.js和React是当前最流行的两个前端框架。它们提供了响应式的数据绑定和组件化的开发方式,使得前端开发变得更加高效和可维护。
vue项目部署到阿里云上
vue项目部署
基于云计算的在线教育平台设计与开发
客户端运行平台:Google等。作为主要的数据存储解决方案,使用 MySQL 数据库与后端服务进行集成,通过 Spring Boot 的数据访问技术来简化与 MySQL 数据库的交互,确保数据的安全性和一致性。(5)写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层。设计和开发一个全面的在线教育平台,包括课程管理、学生管理、教师管理、在线学习等功能模块,满足学生、教师和管理者的各种需求。
9191



被折叠的 条评论
为什么被折叠?



