娃在幼儿园吃了些啥V2:用Vue.js + Django重写项目

前情提要

之前出于自身兴趣,给娃幼儿园写了个每日菜单的网站,并添加到订阅号中(V1版链接)。主要通过页面上的js与Django后台交互,同样通过页面上的js完成返回数据的解析和呈现。
为了更系统地完成前端开发,这次一边学习vue.js框架,一边利用vue改写前端,于是就有了菜单网站项目的第二版(github链接)。

项目结构

前端改用vue.js构建,后端仍然使用django服务,处理前端的数据请求,完成数据库查询。
整个项目目录结构如下:

kinder_foods_vue_django
├─backend
│ ├─__pycache__
│ ├─__init__.py
│ ├─settings.py
│ ├─urls.py
│ └─wsgi.py
├─frontend
│ ├─dist
│ │ ├─static
│ │ │ ├─css
│ │ │ └─js
│ │ └─index.html
│ ├─node_modules
│ ├─public
│ ├─src
│ │ ├─assets
│ │ ├─components
│ │ │ ├─MenuTable.vue
│ │ │ └─SelectDate.vue
│ │ ├─views
│ │ │ ├─ChartView.vue
│ │ │ └─MenuView.vue
│ │ ├─App.vue
│ │ ├─main.js
│ │ └─router.js
│ ├─babel.config.js
│ ├─package.json
│ ├─README.md
│ └─vue.config.js
├─menu
└─manage.py

frontend目录为vue的项目目录,其余为Django项目,Django的APP名为menu。

准备工作

检查版本

vue -V

C:\Users\ZHANG JIZHONG\Documents\Projects\Python\kinder_foods_vue_django>vue -V
3.8.4

使用VUE UI创建项目

网上用命令行脚手架的教程较多,这里就偷懒用ui来创建项目了。

vue ui

C:\Users\ZHANG JIZHONG\Documents\Projects\Python\kinder_foods_vue_django>vue ui
Starting GUI...
Ready on http://localhost:8000

Vue项目管理器

因为都是ui方式的,每一步截图会比较多,这里选取选择功能的截图作为代表,图中开启了Bable、Router和Linter功能。


选择功能

添加bootstrap-vue引用

同样地,依赖也可以通过ui方式安装:


安装依赖

搜索并安装bootstrap-vue,并在全局main.js中添加以下内容方能使用:

import BootstrapVue from 'bootstrap-vue'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue/dist/bootstrap-vue.css'
Vue.use(BootstrapVue)

Vue前端结构

组件

  1. MenuTable.vue

负责呈现菜单的组件,使用bootstrap-vue中的,绑定计算属性daily_menu

computed: {
    daily_menu: function () {
        for (let week in this.menu) {
            return this.menu[week];
        }
    }
},

其中,menu是MenuTable组件的属性:

props: ['menu'],

template块主要内容:


可见该表格共5列,日期列分行显示日期和星期几,其余列直接提取同名属性即可,这些属性都是原生html。
至于为什么要用html,是因为每顿餐食的品种数量是不确定的,需要添加换行标签

为了方便起见,后端返回的数据也做了相应修改(关于这点在Django的views部分中具体描述)。

  1. SelectDate.vue

选择日期的组件,依赖于charliekassel/vuejs-datepicker,在本地需先导入

import Datepicker from 'vuejs-datepicker';
import * as lang from "vuejs-datepicker/src/locale";

lang用于本地化,中文格式设置如下:

data() {
    return {
        format: "yyyy年MM月dd日",
        language: "zh",
        languages: lang,
    }
},

详细的配置可以访问作者的github
template块的主要内容:


为该组件配置了一个事件,当日期被选中时,调用sendEvent方法,方法定义:

sendEvent: function(query_date) {
    this.$emit("selected", query_date);
}

该方法将选中的日期作为参数,使当前组件产生一个"selected"事件(这个selected与datepicker的selected同名,但不是同一个事件,是SelectDate组件的事件)

  1. MenuView.vue

一个容纳以上两个组件的视图组件,内容不多的情况下也可以省略这是视图组件,直接把上面俩组件放到App.vue里去。
template块的主要内容:


监听SelectDate组件的selected事件,捕捉后调用get_menu方法。
get_menu方法向后台传递query_date属性,请求menu数据:

get_menu: function(query_date) {
    let year = query_date.getFullYear();
    let month = query_date.getMonth() + 1;
    let day = query_date.getDate();
    this.query_date = year + '年' + month + '月' + day + '日';
    query_date = year + '-' + month + '-' + day;

    this.$http.post('/ajax/',
        {query_date: query_date},
        {emulateJSON: true}) // 使用form-data才可以,否则querydict空
    .catch(function(error) { // 处理未得到数据的异常
        this.failure = true;
        return Promise.reject(error);
    }).then(function(response){ // 成功返回数据
        this.failure = false;
        this.menu = response.data;
    });
}

如果从/ajax/请求中成功获取后台数据,那么更新this.menu属性(绑定到了MenuTable的menu属性),达到更新MenuTable组件中menu这个prop的目的。
如果未能成功获取后台数据,那么this.failure为true,页面显示,提示用户没有这一天的数据。

  1. ChartView.vue

这个组件原本打算进行一些可视化的尝试,目前还是空的,不过大致想好了放些什么了。既然是跟吃的有关的网站,那就放些食物营养成分之类的图表,类似于foodwake,不知道这方面有没有更好的推荐?

  1. App.vue

这里就相对简单了,添加两个路由链接和路由视图即可。
template块的主要内容:


为了使两个视图在切换的时候不销毁,需要在标签外添加,这样选择的日期和呈现的内容不会因为切换视图而重新初始化。

  1. 修改页面标题

页面的标题即网页标签上显示的内容,在HTML中存在于标签的中。<br> 在vue.js中需要在路由中添加相关信息,router.js</p> <pre><code class="js"> routes: [ { path: '/', name: 'menu-view', component: MenuView, meta: { title: '幼儿园每周菜谱' } }, ] </code></pre> <p>其中meta.title就是添加的标题信息。还要在main.js中增加相应处理:</p> <pre><code class="js">router.beforeEach((to, from, next) => { document.title = to.meta.title next() }) </code></pre> <ol start="7"> <li>指定静态文件目录</li> </ol> <p>npm打包时,会将用到的css和js打包到静态目录中去。默认的静态目录未必满足要求,可以通过vue.config.js文件指定:</p> <pre><code class="js">module.exports = { assetsDir : 'static' } </code></pre> <p>这里的assetsDir是基于outputDir的相对路径,所以实际上是frontend/dist/static。</p> <h3>Django后端</h3> <p>前端全部交给了vue.js,因此Django只用跑WEB服务,以及处理前端的请求。</p> <h4>views的修改</h4> <p>在MenuTable.vue组件中提到了,由于每顿餐食的数量不固定,比如午餐可能是四鲜馄饨和玛瑙松仁甜饭共两样食物,也可能是土豆肋排木耳汤、花菜炒双菇、金玉满堂和麦片饭共四种。纠结了一下,还是用python更为方便,在食物和食物之间直接拼接了<br>。这样前端直接用原生HTML显示即可。但是这个做法,就<strong>在前后端增加了耦合性,而前后端分开开发的一个重要目的就是解耦</strong>,所以这方面有点小遗憾。</p> <h3>整合前后端</h3> <p>这里采取的方法是由npm完成打包,将打包后的目录作为Django的“模板”目录。<br> 在settings.py中指定模板目录(frontend/dist)</p> <pre><code class="python"> TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['frontend/dist'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] </code></pre> <p>将前端的静态目录添加到Django的settings中,以便找到npm打包后的静态文件</p> <pre><code class="python">STATICFILES_DIRS = [ os.path.join(BASE_DIR, "frontend/dist/static"), ] </code></pre> <p>url中添加对根路径的访问,指向npm生成的index.html</p> <pre><code class="python">url(r'^$', TemplateView.as_view(template_name='index.html')) </code></pre> <p>如此整合后,只需运行Django服务,即可完成整个网站的部署。</p> <h4>效果预览</h4> <ul> <li> <p>菜单页:</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 633px;"> <div class="image-view"> </div> </div> <div class="image-caption"> 菜单 </div> </div> </li> <li> <p>敬请期待页:</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 430px;"> <div class="image-view"> </div> </div> <div class="image-caption"> 敬请期待倒计时 </div> </div> </li> </ul> <h3>小结</h3> <p>这次主要是学习vue.js写前端的过程,碰到过一些诸如页面标题、静态文件输出路径等小问题,都能在网上找到解决方案,总体来说还算比较顺利。<br> 项目主要还是以Django服务运行,只是用vue代替了原本Django中的templates那一部分。因为Django主要是通过渲染模板完成前端呈现,对于前端的开发支持其实并不充分。而用vue写前端如果熟练的话效率会更高。</p> <h3>参考</h3> <p>整合 Django + Vue.js 框架快速搭建web项目</p> </article>������������ </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1635427438764810240"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(娃在幼儿园吃了些啥V2:用Vue.js + Django重写项目)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1901308135600091136.htm" title="最短路算法" target="_blank">最短路算法</a> <span class="text-muted">Emplace</span> <a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%AE%BA/1.htm">图论</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E7%9F%AD%E8%B7%AF/1.htm">最短路</a> <div>算法介绍最短路是一种在一个有权图中求任意两点间的最短路径。算法描述最短路有很多的形式:单源最短路:就是固定起点的最短路。多源最短路:就是不固定起点的最短路。其中Floyd就是求多源最短路的。Floyd算法流程首先我们可以先枚举中间节点kkk,然后再枚举经过这个中间节点的起点和终点。最后对于每对起点和终点我们假设它们为(i,j),那么从i到j的距离就应该是a(i,k)+a(k,j)与a(i,j)的最</div> </li> <li><a href="/article/1901307504613191680.htm" title="计算机毕设论文灵魂模块:系统架构图设计终极指南(附资料)" target="_blank">计算机毕设论文灵魂模块:系统架构图设计终极指南(附资料)</a> <span class="text-muted">计算机毕业设计小帅</span> <a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/%E6%AF%95%E4%B8%9A%E8%AE%BE%E8%AE%A1/1.htm">毕业设计</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.htm">系统架构</a> <div>【关注我,毕业设计不迷茫】|6年辅导经验|帮助1200+学子顺利毕业大家好,我是程序员小帅,一名专注于计算机毕业设计全流程辅导的技术博主。专注JavaWeb,我深耕毕设领域6年,累计输出1200+原创项目案例,辅导成功率接近100%。如果你正在为选题、代码、论文或答辩发愁,这里能给你最落地的解决方案!为什么架构图是毕设的灵魂?1️⃣展示系统思维:用一张图说清技术选型逻辑2️⃣设计说明书:开发前必须</div> </li> <li><a href="/article/1901305487949885440.htm" title="Java学习笔记1.1_初识 Java" target="_blank">Java学习笔记1.1_初识 Java</a> <span class="text-muted">火车爱上轨道</span> <a class="tag" taget="_blank" href="/search/Java%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80/1.htm">Java编程语言基础</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>初识Java前言一、Java概述1.什么是程序2.Java语言的产生和发展史3.Java可以做什么4.Java语言的特点二、Java语言环境搭建1.JDK、JRE、JVM关系2.安装JDK3.配置环境变量4.环境测试三、开发第一个Java程序1.开发Java程序的步骤2.用记事本开发Java程序四、Java程序的注释1.单行注释和多行注释2.文档注释五、Java程序的结构六、JavaAPI文档前言</div> </li> <li><a href="/article/1901305488595808256.htm" title="Java Scanner 类" target="_blank">Java Scanner 类</a> <span class="text-muted">大哥的打嗝</span> <a class="tag" taget="_blank" href="/search/JAVA/1.htm">JAVA</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>JavaScanner类是Java的一个内置类,它提供了一种简便的方式来从标准输入或者文件中读取基本类型和字符串。本文将会详细介绍JavaScanner类的作用以及在实际工作中的用途。Scanner类的作用Scanner类可以方便地读取从控制台、文件等输入流中读取基本类型和字符串。Scanner类可以读取int、long、float、double和String等基本类型。它还可以使用正则表达式读取</div> </li> <li><a href="/article/1901305235763163136.htm" title="VScode中相对路径" target="_blank">VScode中相对路径</a> <span class="text-muted">阳来了</span> <a class="tag" taget="_blank" href="/search/VScode/1.htm">VScode</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a> <div>问题描述在使用VScode保存文件时,默认相对路径时当前项目的根目录,但我们通常使用相对路径都是对比当前编辑文件所在位置。解决点击设置,搜索coderunner,在勾选图中标识,重启即可。</div> </li> <li><a href="/article/1901305109451698176.htm" title="分辨率、帧率和码率三者之间的关系" target="_blank">分辨率、帧率和码率三者之间的关系</a> <span class="text-muted">0 error ~ 0 warning</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%9D%82%E8%AF%B4/1.htm">计算机杂说</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>1、前言  在很多视频项目中,我们经常会说的,视频质量好或者视频质量不好。那么这个视频质量到底怎么算是好,怎么算是不好呢?这里我们就要了解一下有关视频的几个重要参数:分辨率,帧率,码率。这三个参数是评估视频质量的关键参数。2、分辨率  指图像占用屏幕上像素的多少。图像中的像素密度越高,图像的分辨率越高。目前视频方面使用最多的分辨率是1080P。1080P的像素总数为1920x1080=2,073,</div> </li> <li><a href="/article/1901304983098290176.htm" title="何时选择Linux而不是RTOS" target="_blank">何时选择Linux而不是RTOS</a> <span class="text-muted">硬核科技</span> <a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E5%BC%80%E5%8F%91/1.htm">硬件开发</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/arm%E5%BC%80%E5%8F%91/1.htm">arm开发</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">硬件工程</a> <div>嵌入式系统的开发,常常涉及到实时性、效率、资源管理等多方面的要求。在许多实时性要求高、资源受限的系统中,RTOS(实时操作系统)凭借其低延迟和高效的资源管理特性,成为主流的选择。然而,随着嵌入式系统功能的复杂化和应用领域的扩展,尤其是在消费类电子和商用领域,RTOS的局限性逐渐显现,嵌入式Linux系统逐渐成为一种更合适的解决方案。1.多任务与多进程的复杂管理RTOS的任务调度机制在轻量级嵌入式系</div> </li> <li><a href="/article/1901304478208946176.htm" title="实验六 多cache一致性——监听协议_多核Cache一致性" target="_blank">实验六 多cache一致性——监听协议_多核Cache一致性</a> <span class="text-muted">weixin_39576336</span> <a class="tag" taget="_blank" href="/search/%E5%AE%9E%E9%AA%8C%E5%85%AD/1.htm">实验六</a><a class="tag" taget="_blank" href="/search/%E5%A4%9Acache%E4%B8%80%E8%87%B4%E6%80%A7%E2%80%94%E2%80%94%E7%9B%91%E5%90%AC%E5%8D%8F%E8%AE%AE/1.htm">多cache一致性——监听协议</a> <div>经过这么多篇文章的介绍,我们应该已经对Cache有一个比较清晰的认识。Cache会面临哪些问题,我们该怎么处理这些问题。现在我们讨论多核Cache一致性问题。在摩尔定律不太适用的今天,人们试图增加CPU核数以提升系统整体性能。这类系统称之为多核系统(简称MP,Multi-Processor)。我们知道每个CPU都有一个私有的L1Cache(不细分iCache和dCache)。假设一个2核的系统,我</div> </li> <li><a href="/article/1901304099643650048.htm" title="qnx与linux区别,实时Linux和RTOS进行比较" target="_blank">qnx与linux区别,实时Linux和RTOS进行比较</a> <span class="text-muted">Paul Winterbottom</span> <a class="tag" taget="_blank" href="/search/qnx%E4%B8%8Elinux%E5%8C%BA%E5%88%AB/1.htm">qnx与linux区别</a> <div>对实时操作系统(RTOS)特性进行比较和分析。对于我们刚接触这个操作系统时一定要对他们要有一定的了解,我们先对实时操作系统来了解下,它就是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在</div> </li> <li><a href="/article/1901303973353156608.htm" title="C语言用数组编程矩阵,二维数组—矩阵求和(C语言)" target="_blank">C语言用数组编程矩阵,二维数组—矩阵求和(C语言)</a> <span class="text-muted">乌里阿姨</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80%E7%94%A8%E6%95%B0%E7%BB%84%E7%BC%96%E7%A8%8B%E7%9F%A9%E9%98%B5/1.htm">C语言用数组编程矩阵</a> <div>昨天上机了,之前上机都觉得题目挺简单的,但昨天的题明显比以前难了好吗!字符串二维数组感觉也没教什么呀。。所以我也做了蛮久,现依次把这几道题放在这里留作纪念。题目1:请写一个程序,对于一个m行m列(2<m<20)的方阵,求其每一行、每一列及主、辅对角线元素之和(注:主对角线是方阵从左上角到右下角的一条斜线,辅对角线是方阵从右上角到左下角的一条斜线),然后按照从大到小的顺序依次输出这些值。这道题还是挺</div> </li> <li><a href="/article/1901303719027339264.htm" title="Unicode码------二个字节编码的系统" target="_blank">Unicode码------二个字节编码的系统</a> <span class="text-muted">Mar.三月</span> <a class="tag" taget="_blank" href="/search/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/1.htm">Java基础知识</a> <div>Unicode码:Unicode码也是一种国际标准编码,采用二个字节编码它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode编码则是采用双字节16位来进行编号,可编65536字符,基本上包含了世界上所有的语言字符,它也就成为了全世界一种通用的编码,而且用十六进制4位表示一个编码,非常简结直观,为大多数开发者所接受,特别是十六进制编码后</div> </li> <li><a href="/article/1901303086362718208.htm" title="第5章 构造、析构、拷贝语义学3:对象复制语意学" target="_blank">第5章 构造、析构、拷贝语义学3:对象复制语意学</a> <span class="text-muted">qq_40178082</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%85%A5%E6%8E%A2%E7%B4%A2C%2B%2B%E5%AF%B9%E8%B1%A1%E6%A8%A1%E5%9E%8B/1.htm">深入探索C++对象模型</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>重点:编译器生成构造函数的四种情况,如何避免copyconstructor在子类多个调用当我们指定一个classobject给另一个classobject时,通常有三种选择:什么都不做,实施默认的行为。提供一个explicitcopyassignmentoperator。显式地拒绝指定一个classobject给另一个classobject,声明为private(并且此时不同函数的定义,一旦某个m</div> </li> <li><a href="/article/1901303086958309376.htm" title="第5章 构造、析构、拷贝语义学4:析构函数语义学" target="_blank">第5章 构造、析构、拷贝语义学4:析构函数语义学</a> <span class="text-muted">qq_40178082</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%85%A5%E6%8E%A2%E7%B4%A2C%2B%2B%E5%AF%B9%E8%B1%A1%E6%A8%A1%E5%9E%8B/1.htm">深入探索C++对象模型</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>析构函数也是根据编译器的需要才会合成出来,两种情况:class中有某个object拥有析构函数;继承自某个baseclass,该baseclass含有析构函数。定义了constructor后不一定要定义destructor,决定class是否需要destructor是程序层面的事。与构造函数相比,即使拥有虚函数或者虚拟继承,不满足上述两个条件,编译器是不会合成析构函数的。在继承体系中,由我们定义的</div> </li> <li><a href="/article/1901300943308255232.htm" title="C++|构造函数和析构函数" target="_blank">C++|构造函数和析构函数</a> <span class="text-muted">柯ran</span> <a class="tag" taget="_blank" href="/search/C%2B%2B%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">C++程序设计</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>一、构造函数构造函数是一种特殊的成员函数,主要用于创建对象时对对象进行初始化操作,即专门用于构造新对象,并赋值对象的成员数据。在C++里,构造函数的名称和类名相同,并且没有返回类型。当创建类的对象时,构造函数会自动被调用。构造函数可以在类内也可在类外定义。构造函数在类内的定义格式如下:类名(参数列表){函数体;}在类外定义构造函数的形式如下:类名::类名(形参列表){函数体;}构造函数可以重载,即</div> </li> <li><a href="/article/1901300313529315328.htm" title="VSCODE中open函数读取不了相对路径怎么办" target="_blank">VSCODE中open函数读取不了相对路径怎么办</a> <span class="text-muted">青岑浪</span> <a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>在VScode中使用f=open(txt,'r')读取文件时报错:Nosuchfileordirectory记录一下我的解决过程和看到的好文章,供大家参考搜索到一个博主的解决方案Vscode的相对路径读取问题及处理_解决vscode相对路径-CSDN博客,在目录的.vscode文件夹中,修改launch.json文件,添加一行代码:"cwd":"${fileDirname}",就可以一劳永逸的解决</div> </li> <li><a href="/article/1901299933022056448.htm" title="YOLOv5+UI界面在车辆检测中的应用与实现" target="_blank">YOLOv5+UI界面在车辆检测中的应用与实现</a> <span class="text-muted">深度学习&目标检测实战项目</span> <a class="tag" taget="_blank" href="/search/YOLOv5%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">YOLOv5实战项目</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E7%B1%BB/1.htm">分类</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E6%A0%87%E8%B7%9F%E8%B8%AA/1.htm">目标跟踪</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>1.引言随着智能交通系统(ITS)的快速发展,车辆检测已成为计算机视觉领域的重要研究方向。车辆检测技术广泛应用于交通流量监控、车辆违章抓拍、无人驾驶等场景中。近年来,深度学习技术的突破,特别是卷积神经网络(CNN)的崛起,使得目标检测技术取得了显著进展。其中,YOLO(YouOnlyLookOnce)系列模型以其高效的实时检测能力和出色的性能成为车辆检测领域的首选方法之一。在本文中,我们将基于YO</div> </li> <li><a href="/article/1901299934053855232.htm" title="QT中的布局管理" target="_blank">QT中的布局管理</a> <span class="text-muted">m0_55576290</span> <a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在Qt中,布局管理器(如QHBoxLayout和QVBoxLayout)的构造函数可以接受一个QWidget*参数,用于指定该布局的父控件。如果指定了父控件,布局会自动将其管理的控件添加到父控件中。在你的代码中,QHBoxLayout和QVBoxLayout的使用方式是正确的,但它们的父控件设置方式有所不同。以下是详细解释:1.QHBoxLayout*mainLayout=newQHBoxLayo</div> </li> <li><a href="/article/1901299934540394496.htm" title="qt designer中的Spacer相关设置" target="_blank">qt designer中的Spacer相关设置</a> <span class="text-muted">m0_55576290</span> <a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在QtDesigner中,Spacer是一种特殊的布局元素,用于调整界面中控件的间距或填充空白区域。Spacer的sizeType属性用于控制其在布局中的伸缩行为,尤其是在窗口大小改变时的行为。以下是sizeType中各个选项的含义:1.Fixed(固定)含义:Spacer的大小是固定的,不会随着窗口大小的改变而改变。应用场景:当你希望Spacer保持一个恒定的大小,不被拉伸或压缩时使用。2.Mi</div> </li> <li><a href="/article/1901299680847917056.htm" title="在连通无向图中寻找欧拉回路(Eulerian Circuit)" target="_blank">在连通无向图中寻找欧拉回路(Eulerian Circuit)</a> <span class="text-muted">醉心编码</span> <a class="tag" taget="_blank" href="/search/c%2Fc%2B%2B/1.htm">c/c++</a><a class="tag" taget="_blank" href="/search/%E6%8A%80%E6%9C%AF%E7%B1%BB/1.htm">技术类</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/1.htm">编程基础</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%AC%A7%E6%8B%89%E5%9B%9E%E8%B7%AF/1.htm">欧拉回路</a> <div>在连通无向图中寻找欧拉回路(EulerianCircuit)问题描述解决方案概述算法步骤伪代码C代码示例如何在迷宫中找出一条路示例:在简单迷宫中应用欧拉回路结论问题描述给定一个连通无向图$G=(V,E)$,我们需要找到一条路径,该路径正向和反向通过$E$中的每条边恰好一次,即该路径通过每条边两次,但方向相反。这样的路径被称为欧拉回路(EulerianCircuit)。解决方案概述欧拉回路存在的充分</div> </li> <li><a href="/article/1901299427943968768.htm" title="Python Turtle 海龟画图 官方文档" target="_blank">Python Turtle 海龟画图 官方文档</a> <span class="text-muted">Leleprogrammer</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/turtle/1.htm">turtle</a> <div>turtle---海龟绘图源码:Lib/turtle.py概述海龟绘图很适合用来引导孩子学习编程。最初来自于WallyFeurzeig,SeymourPapert和CynthiaSolomon于1967年所创造的Logo编程语言。请想象绘图区有一只机器海龟,起始位置在x-y平面的(0,0)点。先执行importturtle,再执行turtle.forward(15),它将(在屏幕上)朝所面对的x轴</div> </li> <li><a href="/article/1901299175220375552.htm" title="一文搞懂 AI Agent 与 AI 大模型的区别" target="_blank">一文搞懂 AI Agent 与 AI 大模型的区别</a> <span class="text-muted">a小胡哦</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/Manus/1.htm">Manus</a><a class="tag" taget="_blank" href="/search/Ai/1.htm">Ai</a><a class="tag" taget="_blank" href="/search/agent/1.htm">agent</a> <div>在人工智能蓬勃发展的当下,新术语和新技术层出不穷。AIAgent和AI大模型便是其中的“明星”,但不少人对它们的区别感到困惑。今天,我们就以Manus这类AIAgent为例,深入剖析AIAgent与一般AI大模型的不同之处。Manus:Manus定义与核心能力AI大模型AI大模型是基于深度学习架构,通过海量数据训练得到的复杂模型,像GPT-4、文心一言等。它们具备强大的知识储备和语言理解生成能力,</div> </li> <li><a href="/article/1901298041294483456.htm" title="JAVA第一课" target="_blank">JAVA第一课</a> <span class="text-muted">爱吃苹果的日记本</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>跟日记本一起学JAVA!相信你可以的,加油~本章闯关任务:1.cmd打开的方式(0/2)2.照猫画虎(0/5)3.好习惯(0/3)一.首先打开cmd:方法1.win图标+R图标(win的图标可能是四个小方格在你的键盘上,我的就是四个小方格,它是边摁win边摁R)会出来一个运行程序(名字叫“运行”),上面会显示“打开:”在“:”后输入cmd,就会出来小黑框了,进入的一般是系统所在的地方(大部分人的系</div> </li> <li><a href="/article/1901297410756374528.htm" title="Linux 与 RTOS的主要区别到底是啥?" target="_blank">Linux 与 RTOS的主要区别到底是啥?</a> <span class="text-muted">胡涂涂~</span> <a class="tag" taget="_blank" href="/search/Linux%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">Linux驱动开发</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a> <div>目录区别实时操作系统Linux为什么不能称为实时操作系统?总结最后再提一点后话(2022.4.9补充)硬实时Liunx支持硬实时?看了不少博客,浏览量最多的也是详细的介绍了这两种系统,可我对这种操作系统的界限还是很模糊(当然我知道Linux,功能更强大),我想要的答案是,为啥在Linux功能这么强大的情况下,RTOS还能有一席之地,我想这也是他们的主要区别。在经过查阅资料后,我想我得到了答案区别你</div> </li> <li><a href="/article/1901296025528758272.htm" title="蓝桥杯-刷题(铺地毯,多项式输出,玩具谜题,乒乓球,数字统计,明明的随机数)" target="_blank">蓝桥杯-刷题(铺地毯,多项式输出,玩具谜题,乒乓球,数字统计,明明的随机数)</a> <span class="text-muted">一个人在码代码的章鱼</span> <a class="tag" taget="_blank" href="/search/%E5%88%B7%E9%A2%98/1.htm">刷题</a><a class="tag" taget="_blank" href="/search/%E8%93%9D%E6%A1%A5%E6%9D%AF/1.htm">蓝桥杯</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E8%81%8C%E5%9C%BA%E5%92%8C%E5%8F%91%E5%B1%95/1.htm">职场和发展</a> <div>铺地毯题目描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有n张地毯,编号从1到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。输入格式输入共n+2行。第一行</div> </li> <li><a href="/article/1901295899326345216.htm" title="数据结构与算法-图论-二分图" target="_blank">数据结构与算法-图论-二分图</a> <span class="text-muted">一个人在码代码的章鱼</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%AE%BA/1.htm">图论</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95%E5%AD%A6%E4%B9%A0/1.htm">算法学习</a><a class="tag" taget="_blank" href="/search/%E5%9B%BE%E8%AE%BA/1.htm">图论</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>关押罪犯(贪心+二分答案+染色法判定二分图/扩展域并查集)题目描述S城现有两座监狱,一共关押着N名罪犯,编号分别为1∼N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突。我们用“怨气值”(一个正整数值)来表示某两名罪犯之间的仇恨程度,怨气值越大,则这两名罪犯之间的积怨越多。如果两名怨气值为c的罪犯被关押在同一监狱,他们俩之间会发生摩擦,并造成影响力为c的</div> </li> <li><a href="/article/1901294513373114368.htm" title="深入理解Spring Boot:构建高效企业应用的利器" target="_blank">深入理解Spring Boot:构建高效企业应用的利器</a> <span class="text-muted">人间忽晚..</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>深入理解SpringBoot:构建高效企业应用的利器在快速发展的软件开发领域,快速迭代、高效开发和易于维护成为了开发者们追求的目标。SpringBoot,作为Spring家族的一员,凭借其“约定优于配置”的理念,极大地简化了Spring应用的初始搭建以及开发过程,成为了构建微服务架构和快速开发企业级应用的首选框架。本文将带你深入理解SpringBoot,从基础概念到实战应用,全面剖析其魅力所在。一</div> </li> <li><a href="/article/1901293883724197888.htm" title="《零代码调用最强开源模型DeepSeek-Lite:15分钟实战案例解析》" target="_blank">《零代码调用最强开源模型DeepSeek-Lite:15分钟实战案例解析》</a> <span class="text-muted">煜bart</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>一、突破性技术揭秘DeepSeek-Lite-16K作为当前中文开源模型的性能冠军,在CLUE评测中超越GPT-4的表现令人震惊。该模型采用独特的动态窗口技术,支持最大16ktokens的上下文处理能力,在智能客服、法律文书处理、医疗诊断等场景展现惊人潜力。##二、三步极速接入指南```python#实战代码片段(基于HuggingFace平台)fromtransformersimportAuto</div> </li> <li><a href="/article/1901293630295961600.htm" title="vscode--工作区和相对路径" target="_blank">vscode--工作区和相对路径</a> <span class="text-muted">一头大学牲</span> <a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F--%E7%BC%96%E7%A8%8B%E8%AE%B0%E5%BD%95/1.htm">程序--编程记录</a><a class="tag" taget="_blank" href="/search/vscode/1.htm">vscode</a><a class="tag" taget="_blank" href="/search/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E8%BE%91%E5%99%A8/1.htm">编辑器</a> <div>vscode的相对路径使用vscode编辑python项目时发现,它的相对路径是相对于当前工作根目录来定位的,也就是从工作文件夹的最顶级目录开始查找,而非是从当前执行文件开始查找。例子:根目录:F:\deep-learning-for-image-processing执行文件路径:F:\deep-learning-for-image-processing\pytorch_classificatio</div> </li> <li><a href="/article/1901291615763361792.htm" title="Ubuntu14.04设置网络代理" target="_blank">Ubuntu14.04设置网络代理</a> <span class="text-muted">得一录</span> <a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a> <div>buntu下apt-get的网络代理设置(终端命令行的网络代理设置)新立得软件管理器这种图形化的代理设置很明了,这里介绍下终端命令行的网络代理设置,这样大家就可以通过代理进行apt-get了。方法一:如果只是想临时使用http代理,可以在使用apt-get之前于终端下输入:exporthttp_proxy="http://用户名:密码@代理IP:代理端口"方法二:(方法一的持久化)如果希望apt-</div> </li> <li><a href="/article/1901290481229295616.htm" title="基于python+mysql+vue的医院门诊管理系统" target="_blank">基于python+mysql+vue的医院门诊管理系统</a> <span class="text-muted">自不量力的A同学</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>主要使用技术环境需要1.运行环境:python3.82.IDE环境:pycharm+mysql5.73.数据库工具:Navicat154.硬件环境:windows10/118G内存以上;或者MacOS;5.数据库:MySql5.7版本;技术栈后端:python+django前端:vue+CSS+JavaScript+jQuery+antdesign代码结构server目录是后端代码web目录是前端</div> </li> <li><a href="/article/3.htm" title="枚举的构造函数中抛出异常会怎样" target="_blank">枚举的构造函数中抛出异常会怎样</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a> <div>首先从使用enum实现单例说起。 为什么要用enum来实现单例? 这篇文章( http://javarevisited.blogspot.sg/2012/07/why-enum-singleton-are-better-in-java.html)阐述了三个理由: 1.enum单例简单、容易,只需几行代码: public enum Singleton { INSTANCE;</div> </li> <li><a href="/article/130.htm" title="CMake 教程" target="_blank">CMake 教程</a> <span class="text-muted">aigo</span> <a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a> <div>转自:http://xiang.lf.blog.163.com/blog/static/127733322201481114456136/   CMake是一个跨平台的程序构建工具,比如起自己编写Makefile方便很多。 介绍:http://baike.baidu.com/view/1126160.htm 本文件不介绍CMake的基本语法,下面是篇不错的入门教程: http:</div> </li> <li><a href="/article/257.htm" title="cvc-complex-type.2.3: Element 'beans' cannot have character" target="_blank">cvc-complex-type.2.3: Element 'beans' cannot have character</a> <span class="text-muted">Cb123456</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Webgis/1.htm">Webgis</a> <div>  cvc-complex-type.2.3: Element 'beans' cannot have character     Line 33 in XML document from ServletContext resource [/WEB-INF/backend-servlet.xml] is i</div> </li> <li><a href="/article/384.htm" title="jquery实例:随页面滚动条滚动而自动加载内容" target="_blank">jquery实例:随页面滚动条滚动而自动加载内容</a> <span class="text-muted">120153216</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div><script language="javascript"> $(function (){ var i = 4;$(window).bind("scroll", function (event){ //滚动条到网页头部的 高度,兼容ie,ff,chrome var top = document.documentElement.s</div> </li> <li><a href="/article/511.htm" title="将数据库中的数据转换成dbs文件" target="_blank">将数据库中的数据转换成dbs文件</a> <span class="text-muted">何必如此</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/dbs/1.htm">dbs</a> <div>旗正规则引擎通过数据库配置器(DataBuilder)来管理数据库,无论是Oracle,还是其他主流的数据都支持,操作方式是一样的。旗正规则引擎的数据库配置器是用于编辑数据库结构信息以及管理数据库表数据,并且可以执行SQL 语句,主要功能如下。 1)数据库生成表结构信息:         主要生成数据库配置文件(.conf文</div> </li> <li><a href="/article/638.htm" title="在IBATIS中配置SQL语句的IN方式" target="_blank">在IBATIS中配置SQL语句的IN方式</a> <span class="text-muted">357029540</span> <a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a> <div>在使用IBATIS进行SQL语句配置查询时,我们一定会遇到通过IN查询的地方,在使用IN查询时我们可以有两种方式进行配置参数:String和List。具体使用方式如下: 1.String:定义一个String的参数userIds,把这个参数传入IBATIS的sql配置文件,sql语句就可以这样写: <select id="getForms" param</div> </li> <li><a href="/article/765.htm" title="Spring3 MVC 笔记(一)" target="_blank">Spring3 MVC 笔记(一)</a> <span class="text-muted">7454103</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/REST/1.htm">REST</a><a class="tag" taget="_blank" href="/search/JSF/1.htm">JSF</a> <div>         自从 MVC 这个概念提出来之后 struts1.X  struts2.X   jsf 。。。。。 这个view 层的技术一个接一个! 都用过!不敢说哪个绝对的强悍! 要看业务,和整体的设计!      最近公司要求开发个新系统!</div> </li> <li><a href="/article/892.htm" title="Timer与Spring Quartz 定时执行程序" target="_blank">Timer与Spring Quartz 定时执行程序</a> <span class="text-muted">darkranger</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/quartz/1.htm">quartz</a> <div>有时候需要定时触发某一项任务。其实在jdk1.3,java sdk就通过java.util.Timer提供相应的功能。一个简单的例子说明如何使用,很简单: 1、第一步,我们需要建立一项任务,我们的任务需要继承java.util.TimerTask package com.test; import java.text.SimpleDateFormat; import java.util.Date; </div> </li> <li><a href="/article/1019.htm" title="大端小端转换,le32_to_cpu 和cpu_to_le32" target="_blank">大端小端转换,le32_to_cpu 和cpu_to_le32</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/C%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%85%B3/1.htm">C语言相关</a> <div>大端小端转换,le32_to_cpu 和cpu_to_le32  字节序 http://oss.org.cn/kernel-book/ldd3/ch11s04.html         小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以另一种方式(大端)</div> </li> <li><a href="/article/1146.htm" title="Nginx负载均衡配置实例详解" target="_blank">Nginx负载均衡配置实例详解</a> <span class="text-muted">avords</span> <div>[导读] 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解 负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。 负载均衡 先来简单了解一下什么是负载均衡</div> </li> <li><a href="/article/1273.htm" title="乱说的" target="_blank">乱说的</a> <span class="text-muted">houxinyou</span> <a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91/1.htm">敏捷开发</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95/1.htm">软件测试</a> <div>从很久以前,大家就研究框架,开发方法,软件工程,好多!反正我是搞不明白! 这两天看好多人研究敏捷模型,瀑布模型!也没太搞明白. 不过感觉和程序开发语言差不多, 瀑布就是顺序,敏捷就是循环. 瀑布就是需求、分析、设计、编码、测试一步一步走下来。而敏捷就是按摸块或者说迭代做个循环,第个循环中也一样是需求、分析、设计、编码、测试一步一步走下来。 也可以把软件开发理</div> </li> <li><a href="/article/1400.htm" title="欣赏的价值——一个小故事" target="_blank">欣赏的价值——一个小故事</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%9C%89%E6%95%88%E8%BE%85%E5%AF%BC/1.htm">有效辅导</a><a class="tag" taget="_blank" href="/search/%E6%AC%A3%E8%B5%8F/1.htm">欣赏</a><a class="tag" taget="_blank" href="/search/%E6%AC%A3%E8%B5%8F%E7%9A%84%E4%BB%B7%E5%80%BC/1.htm">欣赏的价值</a> <div>  第一次参加家长会,幼儿园的老师说:"您的儿子有多动症,在板凳上连三分钟都坐不了,你最好带他去医院看一看。"  回家的路上,儿子问她老师都说了些什么,她鼻子一酸,差点流下泪来。因为全班30位小朋友,惟有他表现最差;惟有对他,老师表现出不屑,然而她还在告诉她的儿子:"老师表扬你了,说宝宝原来在板凳上坐不了一分钟,现在能坐三分钟。其他妈妈都非常羡慕妈妈,因为全班只有宝宝</div> </li> <li><a href="/article/1527.htm" title="包冲突问题的解决方法" target="_blank">包冲突问题的解决方法</a> <span class="text-muted">bingyingao</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/exclusions/1.htm">exclusions</a><a class="tag" taget="_blank" href="/search/%E5%8C%85%E5%86%B2%E7%AA%81/1.htm">包冲突</a> <div>包冲突是开发过程中很常见的问题: 其表现有: 1.明明在eclipse中能够索引到某个类,运行时却报出找不到类。 2.明明在eclipse中能够索引到某个类的方法,运行时却报出找不到方法。 3.类及方法都有,以正确编译成了.class文件,在本机跑的好好的,发到测试或者正式环境就 抛如下异常: java.lang.NoClassDefFoundError: Could not in</div> </li> <li><a href="/article/1654.htm" title="【Spark七十五】Spark Streaming整合Flume-NG三之接入log4j" target="_blank">【Spark七十五】Spark Streaming整合Flume-NG三之接入log4j</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/Stream/1.htm">Stream</a> <div>先来一段废话: 实际工作中,业务系统的日志基本上是使用Log4j写入到日志文件中的,问题的关键之处在于业务日志的格式混乱,这给对日志文件中的日志进行统计分析带来了极大的困难,或者说,基本上无法进行分析,每个人写日志的习惯不同,导致日志行的格式五花八门,最后只能通过grep来查找特定的关键词缩小范围,但是在集群环境下,每个机器去grep一遍,分析一遍,这个效率如何可想之二,大好光阴都浪费在这上面了</div> </li> <li><a href="/article/1781.htm" title="sudoku solver in Haskell" target="_blank">sudoku solver in Haskell</a> <span class="text-muted">bookjovi</span> <a class="tag" taget="_blank" href="/search/sudoku/1.htm">sudoku</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a> <div>这几天没太多的事做,想着用函数式语言来写点实用的程序,像fib和prime之类的就不想提了(就一行代码的事),写什么程序呢?在网上闲逛时发现sudoku游戏,sudoku十几年前就知道了,学生生涯时也想过用C/Java来实现个智能求解,但到最后往往没写成,主要是用C/Java写的话会很麻烦。   现在写程序,本人总是有一种思维惯性,总是想把程序写的更紧凑,更精致,代码行数最少,所以现</div> </li> <li><a href="/article/1908.htm" title="java apache ftpClient" target="_blank">java apache ftpClient</a> <span class="text-muted">bro_feng</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>最近使用apache的ftpclient插件实现ftp下载,遇见几个问题,做如下总结。 1. 上传阻塞,一连串的上传,其中一个就阻塞了,或是用storeFile上传时返回false。查了点资料,说是FTP有主动模式和被动模式。将传出模式修改为被动模式ftp.enterLocalPassiveMode();然后就好了。 看了网上相关介绍,对主动模式和被动模式区别还是比较的模糊,不太了解被动模</div> </li> <li><a href="/article/2035.htm" title="读《研磨设计模式》-代码笔记-工厂方法模式" target="_blank">读《研磨设计模式》-代码笔记-工厂方法模式</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a> <div>声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/ package design.pattern; /* * 工厂方法模式:使一个类的实例化延迟到子类 * 某次,我在工作不知不觉中就用到了工厂方法模式(称为模板方法模式更恰当。2012-10-29): * 有很多不同的产品,它</div> </li> <li><a href="/article/2162.htm" title="面试记录语" target="_blank">面试记录语</a> <span class="text-muted">chenyu19891124</span> <a class="tag" taget="_blank" href="/search/%E6%8B%9B%E8%81%98/1.htm">招聘</a> <div>或许真的在一个平台上成长成什么样,都必须靠自己去努力。有了好的平台让自己展示,就该好好努力。今天是自己单独一次去面试别人,感觉有点小紧张,说话有点打结。在面试完后写面试情况表,下笔真的好难,尤其是要对面试人的情况说明真的好难。 今天面试的是自己同事的同事,现在的这个同事要离职了,介绍了我现在这位同事以前的同事来面试。今天这位求职者面试的是配置管理,期初看了简历觉得应该很适合做配置管理,但是今天面</div> </li> <li><a href="/article/2289.htm" title="Fire Workflow 1.0正式版终于发布了" target="_blank">Fire Workflow 1.0正式版终于发布了</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a><a class="tag" taget="_blank" href="/search/workflow/1.htm">workflow</a><a class="tag" taget="_blank" href="/search/Google/1.htm">Google</a> <div>Fire Workflow 是国内另外一款开源工作流,作者是著名的非也同志,哈哈.... 官方网站是 http://www.fireflow.org 经过大家努力,Fire Workflow 1.0正式版终于发布了 正式版主要变化: 1、增加IWorkItem.jumpToEx(...)方法,取消了当前环节和目标环节必须在同一条执行线的限制,使得自由流更加自由 2、增加IT</div> </li> <li><a href="/article/2416.htm" title="Python向脚本传参" target="_blank">Python向脚本传参</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E8%84%9A%E6%9C%AC/1.htm">脚本</a><a class="tag" taget="_blank" href="/search/%E4%BC%A0%E5%8F%82/1.htm">传参</a> <div>如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名:    sys.argv[0] 参数1:     sys.argv[1] 参数2:     sys.argv[</div> </li> <li><a href="/article/2543.htm" title="管理用户分组的命令gpasswd" target="_blank">管理用户分组的命令gpasswd</a> <span class="text-muted">dongwei_6688</span> <a class="tag" taget="_blank" href="/search/passwd/1.htm">passwd</a> <div>NAME: gpasswd - administer the /etc/group file SYNOPSIS: gpasswd group gpasswd -a user group gpasswd -d user group gpasswd -R group gpasswd -r group gpasswd [-A user,...] [-M user,...] g</div> </li> <li><a href="/article/2670.htm" title="郝斌老师数据结构课程笔记" target="_blank">郝斌老师数据结构课程笔记</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E4%B8%8E%E7%AE%97%E6%B3%95/1.htm">数据结构与算法</a> <div><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<</div> </li> <li><a href="/article/2797.htm" title="yii2 cgridview加上选择框进行操作" target="_blank">yii2 cgridview加上选择框进行操作</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/GridView/1.htm">GridView</a> <div>页面代码 <?=Html::beginForm(['controller/bulk'],'post');?> <?=Html::dropDownList('action','',[''=>'Mark selected as: ','c'=>'Confirmed','nc'=>'No Confirmed'],['class'=>'dropdown',])</div> </li> <li><a href="/article/2924.htm" title="linux mysql" target="_blank">linux mysql</a> <span class="text-muted">fypop</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>enquiry mysql version in centos linux yum list installed | grep mysql yum -y remove mysql-libs.x86_64 enquiry mysql version in yum repositoryyum list | grep mysql oryum -y list mysql* install mysq</div> </li> <li><a href="/article/3051.htm" title="Scramble String" target="_blank">Scramble String</a> <span class="text-muted">hcx2013</span> <a class="tag" taget="_blank" href="/search/String/1.htm">String</a> <div>Given a string s1, we may represent it as a binary tree by partitioning it to two non-empty substrings recursively. Below is one possible representation of s1 = "great":</div> </li> <li><a href="/article/3178.htm" title="跟我学Shiro目录贴" target="_blank">跟我学Shiro目录贴</a> <span class="text-muted">jinnianshilongnian</span> <a class="tag" taget="_blank" href="/search/%E8%B7%9F%E6%88%91%E5%AD%A6shiro/1.htm">跟我学shiro</a> <div>历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。     ----广告-----------------------------------------------------</div> </li> <li><a href="/article/3305.htm" title="nginx日志切割并使用flume-ng收集日志" target="_blank">nginx日志切割并使用flume-ng收集日志</a> <span class="text-muted">liyonghui160com</span> <div>     nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件。第一步就是重命名日志文件,不用担心重命名后nginx找不到日志文件而丢失日志。在你未重新打开原名字的日志文件前,nginx还是会向你重命名的文件写日志,linux是靠文件描述符而不是文件名定位文件。第二步向nginx主</div> </li> <li><a href="/article/3432.htm" title="Oracle死锁解决方法" target="_blank">Oracle死锁解决方法</a> <span class="text-muted">pda158</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div> select p.spid,c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$process p,v$session a, v$locked_object b,all_objects c where p.addr=a.paddr and a.process=b.process and c.object_id=b.</div> </li> <li><a href="/article/3559.htm" title="java之List排序" target="_blank">java之List排序</a> <span class="text-muted">shiguanghui</span> <a class="tag" taget="_blank" href="/search/list%E6%8E%92%E5%BA%8F/1.htm">list排序</a> <div>   在Java Collection Framework中定义的List实现有Vector,ArrayList和LinkedList。这些集合提供了对对象组的索引访问。他们提供了元素的添加与删除支持。然而,它们并没有内置的元素排序支持。   你能够使用java.util.Collections类中的sort()方法对List元素进行排序。你既可以给方法传递</div> </li> <li><a href="/article/3686.htm" title="servlet单例多线程" target="_blank">servlet单例多线程</a> <span class="text-muted">utopialxw</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>转自http://www.cnblogs.com/yjhrem/articles/3160864.html 和   http://blog.chinaunix.net/uid-7374279-id-3687149.html Servlet 单例多线程 Servlet如何处理多个请求访问?Servlet容器默认是采用单实例多线程的方式处理多个请求的:1.当web服务器启动的</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>