娃在幼儿园吃了些啥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/1901419996110712832.htm" title="Feign性能优化以及最佳实践" target="_blank">Feign性能优化以及最佳实践</a> <span class="text-muted">南川北渔</span> <a class="tag" taget="_blank" href="/search/SpringCloud/1.htm">SpringCloud</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/okhttp/1.htm">okhttp</a> <div>1.Feign性能优化Feign底层发起http请求,依赖于其它的框架。其底层客户端实现包括:•URLConnection:默认实现,不支持连接池•ApacheHttpClient:支持连接池•OKHttp:支持连接池优化1:因此提高Feign的性能主要手段就是使用**连接池**代替默认的URLConnection。优化2:日志的级别,根据项目测试,确定最大连接数和单个路径的最大连接数,日志尽量用</div> </li> <li><a href="/article/1901419869430149120.htm" title="java实现卷积神经网络CNN(附带源码)" target="_blank">java实现卷积神经网络CNN(附带源码)</a> <span class="text-muted">Katie。</span> <a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/1.htm">实战项目</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>Java实现卷积神经网络(CNN)项目详解目录项目概述1.1项目背景与意义1.2什么是卷积神经网络(CNN)1.3卷积神经网络的应用场景相关知识与理论基础2.1神经网络与深度学习概述2.2卷积操作与卷积层原理2.3激活函数与池化层2.4全连接层与损失函数2.5前向传播、反向传播与梯度下降项目需求与分析3.1项目目标3.2功能需求分析3.3性能与扩展性要求3.4异常处理与鲁棒性考虑系统设计与实现思路</div> </li> <li><a href="/article/1901418232418463744.htm" title="Agora-Uniapp-SDK 使用指南" target="_blank">Agora-Uniapp-SDK 使用指南</a> <span class="text-muted">章瑗笛</span> <div>Agora-Uniapp-SDK使用指南Agora-Uniapp-SDK项目地址:https://gitcode.com/gh_mirrors/ag/Agora-Uniapp-SDK1.项目目录结构及介绍Agora-Uniapp-SDK是一个基于Uni-app与AgoraAndroid和iOS视频SDK实现的集成库,它专门设计用于简化在uni-app项目中集成Agora音视频功能的过程。以下是其主</div> </li> <li><a href="/article/1901417728183431168.htm" title="推荐开源项目:Free Templates for AWS CloudFormation" target="_blank">推荐开源项目:Free Templates for AWS CloudFormation</a> <span class="text-muted">褚知茉Jade</span> <div>推荐开源项目:FreeTemplatesforAWSCloudFormationaws-cf-templateswiddix/aws-cf-templates:是一个包含各种AWSCloudFormation模板的存储库。适合查找和学习AWSCloudFormation模板的示例,以及用于构建自己的基础设施。特点是包含了许多AWS服务和功能的模板示例,可以快速地了解如何使用CloudFormati</div> </li> <li><a href="/article/1901417728665776128.htm" title="探索未来架构:基于AWS的响应式微服务框架" target="_blank">探索未来架构:基于AWS的响应式微服务框架</a> <span class="text-muted">柏赢安Simona</span> <div>探索未来架构:基于AWS的响应式微服务框架reactive-refarch-cloudformationReactiveMicroservicesArchitectureswithAmazonECS,AWSLambda,AmazonKinesisStreams,AmazonElastiCache,andAmazonDynamoDB项目地址:https://gitcode.com/gh_mirror</div> </li> <li><a href="/article/1901416719201660928.htm" title="批量安装 Python 库的脚本:提高python学习效率的第一步(附源码)" target="_blank">批量安装 Python 库的脚本:提高python学习效率的第一步(附源码)</a> <span class="text-muted">TAGRENLA</span> <a class="tag" taget="_blank" href="/search/Interesting/1.htm">Interesting</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/project/1.htm">project</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/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>批量安装Python库批量安装Python库的脚本:提高数据分析效率的一步(附源码)批量安装脚本前提条件使用pip:Python包管理工具批量安装脚本查看当前python解释器中安装的所有的库批量安装Python库的脚本:提高数据分析效率的一步(附源码)在现代数据分析领域,Python已成为一个不可或缺的工具。为了进行数据处理、分析、可视化和建模等任务,Python社区涌现出了众多强大的库和工具。</div> </li> <li><a href="/article/1901416467090436096.htm" title="Python 简单后台项目的脚手架" target="_blank">Python 简单后台项目的脚手架</a> <span class="text-muted">程序媛了了</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> <div>说明近期写了一个简单的项目,在后台运行获取网上的期货数据并保存到相应的数据库里。由于之前工作很多这种简单的类似调用接口或攫取数据的项目都是用Python来写,因此这次也继续用Python写。但是这次更换了几个包,此份文档简单来说明一下。依赖的包toml:用户解析配置文件,配置文件用的是toml格式。arrow:用于处理日期相关。loguru:用于日志处理。requests:用于http请求响应。p</div> </li> <li><a href="/article/1901415836489412608.htm" title="mysql创建新表,同步数据" target="_blank">mysql创建新表,同步数据</a> <span class="text-muted">hitsz_syl</span> <a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>importosimportargparseimportglobimportcv2importnumpyasnpimportonnxruntimeimporttqdmimportpymysqlimporttimeimportjsonfromdatetimeimportdatetimeos.environ[“CUDA_VISIBLE_DEVICES”]=“0”#使用GPU0defget_connec</div> </li> <li><a href="/article/1901415710240862208.htm" title="数据读取错误:RuntimeError: The size of tensor a (3) must match the size of tensor b (4) at non-singleton" target="_blank">数据读取错误:RuntimeError: The size of tensor a (3) must match the size of tensor b (4) at non-singleton</a> <span class="text-muted">hitsz_syl</span> <a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F/1.htm">单例模式</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</a> <div>去除4通道图像:importcv2importosimportshutilfolder_path=R'F:\bounding_box_test\bounding_box_train'#更改为存储图片文件夹的路径image_files=os.listdir(folder_path)count=0forfile_nameinimage_files:iffile_name.endswith('.jpg'</div> </li> <li><a href="/article/1901415332245991424.htm" title="Next.js博客项目-快速起步" target="_blank">Next.js博客项目-快速起步</a> <span class="text-muted">Ktovoz</span> <a class="tag" taget="_blank" href="/search/nextjs/1.htm">nextjs</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</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/react/1.htm">react</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>作者:KTO原文:Next.js博客项目-快速起步简介:从nextjs博客模板开始,快速配置搭建自己的博客项目。部署出来的网站样式可以参考原文的网站。Next.js博客项目-快速起步使用的模板我们使用的模板是:tailwind-nextjs-starter-blog该模板有1.0版本和2.0版本。本文以1.0版本为例进行介绍。1.环境配置安装Node.js首先,确保你的机器上已安装Node.js。</div> </li> <li><a href="/article/1901415205955497984.htm" title="TOC目录组件bug记录" target="_blank">TOC目录组件bug记录</a> <span class="text-muted">Ktovoz</span> <a class="tag" taget="_blank" href="/search/BUG/1.htm">BUG</a><a class="tag" taget="_blank" href="/search/bug/1.htm">bug</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>解决双击目录展开/收缩按钮导致的无限循环问题作者:kto个人网站:www.ktovoz.com发布日期:2025-1-18问题描述在为网站添加目录组件时,遇到了一个棘手的BUG。具体表现为:现象:在测试过程中,发现双击目录的展开/收缩按钮后,组件会进入无限循环的展开和折叠状态,导致页面卡顿,用户体验较差。根本原因:onToggle事件的频繁触发:双击操作会触发多次onToggle事件,导致isOp</div> </li> <li><a href="/article/1901414953429037056.htm" title="Ubuntu安装docker-compose-plugin报错“无法定位软件包”终极解决方案" target="_blank">Ubuntu安装docker-compose-plugin报错“无法定位软件包”终极解决方案</a> <span class="text-muted">川星弦</span> <a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>摘要:本文针对Ubuntu系统中安装docker-compose-plugin时出现的E:无法定位软件包错误,提供两种解决方案——官方源修复与国内镜像源替换法,并附赠镜像加速配置技巧。一、问题背景在Ubuntu系统通过aptinstall安装Docker生态工具时,常因软件源配置问题导致以下报错:E:无法定位软件包docker-compose-plugin此问题多由Docker官方软件源未正确添加</div> </li> <li><a href="/article/1901414574024880128.htm" title="PHP与数据库连接常见问题及解决办法" target="_blank">PHP与数据库连接常见问题及解决办法</a> <span class="text-muted">奥顺互联_老张</span> <a class="tag" taget="_blank" href="/search/php%E6%95%99%E7%A8%8B/1.htm">php教程</a><a class="tag" taget="_blank" href="/search/php/1.htm">php</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>PHP与数据库连接常见问题及解决办法在现代Web开发中,PHP与数据库的连接是不可或缺的一部分。无论是构建动态网站、内容管理系统(CMS)还是电子商务平台,PHP与数据库的交互都是核心功能之一。然而,在实际开发过程中,开发者常常会遇到各种与数据库连接相关的问题。本文将探讨PHP与数据库连接中的常见问题,并提供相应的解决办法。1.数据库连接失败问题描述在PHP中,连接数据库时最常见的错误是无法连接到</div> </li> <li><a href="/article/1901414574771466240.htm" title="Android中实现多线程的几种方式" target="_blank">Android中实现多线程的几种方式</a> <span class="text-muted">Ever69</span> <a class="tag" taget="_blank" href="/search/Android%E3%80%8A%E8%91%B5%E8%8A%B1%E5%AE%9D%E5%85%B8%E3%80%8B/1.htm">Android《葵花宝典》</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>目录1.基础线程(Thread)2.Handler与Looper3.AsyncTask(已废弃,仅作了解)4.ExecutorService(线程池)5.IntentService(已废弃,推荐WorkManager)6.Kotlin协程(Coroutines,现代推荐方案)7.HandlerThread对比总结最佳实践建议在Android中,实现多线程编程主要有以下几种方式,每种方式都有其适用场</div> </li> <li><a href="/article/1901414196076146688.htm" title="文心一言提前免费,高性能大模型全面入局该咋看?" target="_blank">文心一言提前免费,高性能大模型全面入局该咋看?</a> <span class="text-muted">江瀚视野</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/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a> <div>3月16日,百度正式发布文心大模型4.5及文心大模型X1,在文心一言官网即可免费使用。这件事我们该怎么看?首先,从技术创新的角度来看,百度文心大模型4.5和X1的发布展示了百度在AI大模型领域的显著进步。文心大模型4.5作为首个原生多模态大模型,在多模态理解、文本和逻辑推理能力上的显著提升,使其在多项测试中表现优于GPT4.5,这体现了百度在AI技术研发上的深厚积累。同时,文心大模型X1作为深度思</div> </li> <li><a href="/article/1901413818026749952.htm" title="信号传输与通信:光纤通信中的信号处理_(15).高级光信号处理技术" target="_blank">信号传输与通信:光纤通信中的信号处理_(15).高级光信号处理技术</a> <span class="text-muted">kkchenkx</span> <a class="tag" taget="_blank" href="/search/%E4%BF%A1%E5%8F%B7%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF%E4%BB%BF%E7%9C%9F%E6%A8%A1%E6%8B%9F/1.htm">信号处理技术仿真模拟</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E5%8F%B7%E5%A4%84%E7%90%86/1.htm">信号处理</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>高级光信号处理技术1.光纤通信中的非线性效应及其补偿1.1光纤非线性效应的原理光纤通信系统中,非线性效应是限制系统性能的关键因素之一。非线性效应主要包括自相位调制(SPM)、交叉相位调制(XPM)、四波混频(FWM)和受激拉曼散射(SRS)等。这些效应在高功率、长距离传输中尤为显著,会导致信号的相位和频率失真,进而影响信号的传输质量。1.1.1自相位调制(SPM)自相位调制是指光波在光纤中传播时,</div> </li> <li><a href="/article/1901413691765616640.htm" title="信号传输与通信:光纤通信中的信号处理_(13).光纤通信中的色散管理" target="_blank">信号传输与通信:光纤通信中的信号处理_(13).光纤通信中的色散管理</a> <span class="text-muted">kkchenkx</span> <a class="tag" taget="_blank" href="/search/%E4%BF%A1%E5%8F%B7%E5%A4%84%E7%90%86%E6%8A%80%E6%9C%AF%E4%BB%BF%E7%9C%9F%E6%A8%A1%E6%8B%9F/1.htm">信号处理技术仿真模拟</a><a class="tag" taget="_blank" href="/search/%E4%BF%A1%E5%8F%B7%E5%A4%84%E7%90%86/1.htm">信号处理</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>光纤通信中的色散管理色散的基本概念色散是光纤通信中的一个关键问题,它会导致信号在传输过程中发生失真。色散主要分为两类:模态色散和色度色散。模态色散模态色散主要发生在多模光纤中。多模光纤允许多个模式同时传播,但由于每个模式的传播速度不同,导致不同模式的光在光纤中传播的时间不同。这种时间差会导致信号的展宽,从而引起失真。色度色散色度色散主要发生在单模光纤中。色度色散是由于不同波长的光在光纤中的传播速度</div> </li> <li><a href="/article/1901412683966640128.htm" title="字符流在处理不同编码文件时的工作原理" target="_blank">字符流在处理不同编码文件时的工作原理</a> <span class="text-muted">啊sen丶</span> <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>在Java中,字符流是专门用于处理文本数据的IO流,它基于字符(char)操作,能够自动处理字符编码的转换。字符流的核心在于它可以根据指定的字符集(如UTF-8、GBK、ISO-8859-1等)将字节数据解码为字符数据,或者将字符数据编码为字节数据。这种机制使得字符流在处理不同编码的文件时非常灵活,能够有效避免因编码不一致导致的乱码问题。一、字符流的工作原理字符流在内部使用Charset(字符集)</div> </li> <li><a href="/article/1901412557571289088.htm" title="Java中的参数传递机制:值传递与引用传递的真相" target="_blank">Java中的参数传递机制:值传递与引用传递的真相</a> <span class="text-muted">啊sen丶</span> <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>在Java编程中,参数传递机制是每个开发者都必须理解的基本概念之一。然而,关于Java的参数传递机制,常常存在一些误解。很多人会问:“Java是按值传递还是按引用传递?”本文将通过详细的解释和代码示例,帮助你彻底理解Java的参数传递机制。一、值传递与引用传递的基本概念(一)值传递(PassbyValue)值传递是指在调用方法时,将实际参数的值复制一份传递给方法。在方法内部对参数的修改不会影响到原</div> </li> <li><a href="/article/1901412304969330688.htm" title="AJAX PHP:深入理解与实际应用" target="_blank">AJAX PHP:深入理解与实际应用</a> <span class="text-muted">wjs2024</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>AJAXPHP:深入理解与实际应用引言随着互联网技术的不断发展,前端与后端交互变得更加频繁。AJAX(AsynchronousJavaScriptandXML)和PHP(HypertextPreprocessor)作为两种流行的技术,在实现动态网页和应用程序方面扮演着重要角色。本文将深入探讨AJAXPHP的工作原理、应用场景以及实际开发中的注意事项。AJAXPHP概述AJAXAJAX是一种基于Ja</div> </li> <li><a href="/article/1901411927054151680.htm" title="【DevOps】Backstage介绍及如何在Azure Kubernetes Service上进行部署" target="_blank">【DevOps】Backstage介绍及如何在Azure Kubernetes Service上进行部署</a> <span class="text-muted">小涵</span> <a class="tag" taget="_blank" href="/search/Azure%E4%BA%91%E4%BC%81%E4%B8%9A%E5%AE%9E%E8%B7%B5%E5%88%86%E4%BA%AB/1.htm">Azure云企业实践分享</a><a class="tag" taget="_blank" href="/search/devops/1.htm">devops</a><a class="tag" taget="_blank" href="/search/azure/1.htm">azure</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/backstage/1.htm">backstage</a> <div>【DevOps】Backstage介绍及如何在AzureKubernetesService上进行部署推荐超级课程:本地离线DeepSeekAI方案部署实战教程【完全版】Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战目录【DevOps】Backstage介绍及如何在AzureKubernetesService上进行部署Backstage介绍在AKS上部署Bac</div> </li> <li><a href="/article/1901410668196720640.htm" title="二进制矩阵全零转换问题 | DFS" target="_blank">二进制矩阵全零转换问题 | DFS</a> <span class="text-muted">@Mr.stone</span> <a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88/1.htm">深度优先</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a> <div>问题描述在一个古老的实验室里,两个研究员,小星和小月,获得了一个mxn的电路图,表示为二进制矩阵grid。在这个矩阵中,他们可以对任意一个电路单元进行翻转操作。翻转操作会将所选单元的状态从0改为1,或从1改为0,同时影响与其相邻的上下左右单元。小星和小月希望通过最少的翻转次数,将整个电路图变成全0的状态。如果这个目标无法实现,则返回-1。测试样例样例1:输入:grid=[[0,1],[1,0]]输</div> </li> <li><a href="/article/1901409912513163264.htm" title="构建我们的Python代码库依赖图" target="_blank">构建我们的Python代码库依赖图</a> <span class="text-muted">openwin_top</span> <a class="tag" taget="_blank" href="/search/python%E7%BC%96%E7%A8%8B%E7%A4%BA%E4%BE%8B%E7%B3%BB%E5%88%97%E4%BA%8C/1.htm">python编程示例系列二</a><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> <div>构建我们的Python代码库依赖图作者:GeorgeFarcasiu,NoahKim,JaconBrugh,JiahaoLi,HudsonRiverTrading引言与我们在高频交易的根基保持一致,HudsonRiverTrading(HRT)行动迅速。与任何工程指标一样,速度有其权衡。在过去的五年中,由于一种通常更重视“足够好”而非“完美”的工程文化,一个鼓励团队间代码共享的协作工作环境,以及一</div> </li> <li><a href="/article/1901409534006587392.htm" title="K8S学习之基础二十八:k8s中的configMap" target="_blank">K8S学习之基础二十八:k8s中的configMap</a> <span class="text-muted">云上艺旅</span> <a class="tag" taget="_blank" href="/search/K8S%E5%AD%A6%E4%B9%A0/1.htm">K8S学习</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a> <div>k8s中的configMapconfigMap是k8s的资源对象,简称cm,用于保存非机密性的配置,数据可以用key/value键值对形式保存,也可以通过文件形式保存在部署服务的时候,每个服务都有自己的配置文件,如果一台服务器上部署多个服务:nginx、tomcat、apache等,那么这些配置都存在这个节点上,假如一台服务器不能满足线上高并发的要求,需要对服务器扩容,扩容之后的服务器还是需要部署</div> </li> <li><a href="/article/1901408903384592384.htm" title="python 重构 Python 代码" target="_blank">python 重构 Python 代码</a> <span class="text-muted">隔壁小红馆</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/cpython/1.htm">cpython</a><a class="tag" taget="_blank" href="/search/python%E9%9D%A2%E8%AF%95/1.htm">python面试</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/cpython/1.htm">cpython</a> <div>将for循环转换为list/dictionary/set表达式我们在时经常遇到的一个情况是,创建一个值的集合。比如我们创建一个列表,然后迭代地用值填充它,这里我们想创建一个立方数字的列表。大多数语言的标准方法如下:cubes=[]foriinrange(20):cubes.append(i**3)在Python中,我们可以使用列表表达式,生成需要的数据。就可以将代码简化为一行,省去定义列表,然后再</div> </li> <li><a href="/article/1901408650740690944.htm" title="python读取excel数字数据是object类型_Python使用反射实现Excel与对象之间的转换" target="_blank">python读取excel数字数据是object类型_Python使用反射实现Excel与对象之间的转换</a> <span class="text-muted">weixin_39638859</span> <div>Python使用反射实现Excel与对象之间的转换代码在最下方,伸手党直接滚动到最后场景需要从Excel中加载到内存中,转换为class对象执行操作环境Python3.8openpyxl==3.0.5前置知识反射(仅介绍这个帮助类用到的几个反射方法)setattr、getattrclassPerson():name=Nonedef__init__(self,name):self.name=name</div> </li> <li><a href="/article/1901408272695488512.htm" title="python语言对代码的块结构不敏感_浅谈python(二)--python代码规范" target="_blank">python语言对代码的块结构不敏感_浅谈python(二)--python代码规范</a> <span class="text-muted">初夏之菡</span> <div>对于每一门语言来说,都有自己的编码规则,编程时是不可以违背这些准则的,一旦不遵守这个准则,程序就会报错无法执行,本节将介绍下python的一些编码规则。1、代码缩进与冒号首先介绍下代码缩进有什么用处,代码缩进是指通过在一行代码的前输入若干空格或者制表符来表示行与行之间的层次关系,每一种编程语言一般都需要代码缩进进行规范程序代码的层次结构,让代码清晰易于解读。对于其它的语言来说,代码缩进作为一种良好</div> </li> <li><a href="/article/1901408020626206720.htm" title="Python编码系列—Python代码重构:提升代码质量" target="_blank">Python编码系列—Python代码重构:提升代码质量</a> <span class="text-muted">学步_技术</span> <a class="tag" taget="_blank" href="/search/Python%E7%BC%96%E7%A0%81/1.htm">Python编码</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/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>欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。探索专栏:学步_技术的首页——持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。技术导航:人工智能:深入探讨人工智能领域核心技术。自动驾驶:分享自动</div> </li> <li><a href="/article/1901407894306353152.htm" title="Spring Boot 多级缓存实战:基于 Redis+Redisson 构建高并发解决方案" target="_blank">Spring Boot 多级缓存实战:基于 Redis+Redisson 构建高并发解决方案</a> <span class="text-muted">Isaac_Gao</span> <a class="tag" taget="_blank" href="/search/%E7%BC%93%E5%AD%98/1.htm">缓存</a><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/redis/1.htm">redis</a> <div>SpringBoot多级缓存实战:基于Redis+Redisson构建高并发解决方案本文适合人群:中高级Java开发工程师、系统架构师、对高并发场景优化感兴趣的技术人员一、为什么需要多级缓存?在百万级并发的电商系统中,我们曾遇到这样的性能瓶颈:本地缓存导致各节点数据不一致单纯依赖Redis造成带宽瓶颈缓存雪崩导致DB被打挂多级缓存架构通过结合本地缓存与分布式缓存的优势,实现了:热点数据纳秒级访问分</div> </li> <li><a href="/article/1901407642090270720.htm" title="lua C语言api学习3 lua中调用C语言函数" target="_blank">lua C语言api学习3 lua中调用C语言函数</a> <span class="text-muted">刘阿去</span> <a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a><a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a><a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>本文介绍如何在lua中如何调用自定义C语言函数1C函数要求Lua可以调用C语言函数,但这并不意味着Lua可以调用所有的C函数。当Lua调用C函数时,这个C函数必须遵循某种规则来获取参数和返回结果。此外,当Lua调用C函数时,我们必须注册该函数,即必须以一种恰当的方式为Lua提供该C函数的地址。所有在lua中注册的函数必须遵循下面原型。typedefint(*lua_CFunction)(lua_S</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>