娃在幼儿园吃了些啥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/1901327555013701632.htm" title="【图像分割】Labelme JSON标注转换为TXT代码详解" target="_blank">【图像分割】Labelme JSON标注转换为TXT代码详解</a> <span class="text-muted">唐king</span> <a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>书接上文:https://blog.csdn.net/qq_49092686/article/details/145114987?spm=1001.2014.3001.5502这里给出更细致的json2txt代码,同时考虑了circle、rectangle这两种情况各位朋友,在使用前,你一定要注意你的json格式是不是跟我的一致,不一致的话是用不了的(是不是也用的labelme制作的数据集)imp</div> </li> <li><a href="/article/1901326042837086208.htm" title="安卓-关于使用startForegroundService启动服务于服务提前终止的思考" target="_blank">安卓-关于使用startForegroundService启动服务于服务提前终止的思考</a> <span class="text-muted">Auspemak-Derafru</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>在安卓官方说明中对前台服务的说明是这样的:从应用启动前台服务分为两步。首先,您必须通过调用context.startForegroundService()来启动服务。然后,让该服务调用ServiceCompat.startForeground()将自身提升为前台服务。启动前台服务|Backgroundwork|AndroidDevelopers其中,说明到了要调用ServiceCompat.sta</div> </li> <li><a href="/article/1901326043319431168.htm" title="linux系统以及pip下载慢问题解决办法" target="_blank">linux系统以及pip下载慢问题解决办法</a> <span class="text-muted">d1st2nt</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/pip/1.htm">pip</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a> <div>在虚拟机中,默认下载源是外国的,很慢,所以要换成国内的下载源ubuntu为例:sudovim/etc/apt/sources.list输入i进入插入模式,注释掉之前的下载源,加入下面的,这是清华的,也有其他的,可以在网上搜。#默认注释了源码仓库,如有需要可自行取消注释debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/jammymainrestricted</div> </li> <li><a href="/article/1901325916085219328.htm" title="java-通过继承android.location.Location实现自定义化的location对象" target="_blank">java-通过继承android.location.Location实现自定义化的location对象</a> <span class="text-muted">Auspemak-Derafru</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>起因:1.在中国大部分地区,由于政策原因。对定位的使用必须使用定位为俗称火星坐标的gcj02坐标系。然而,在调用安卓原生的android.location.LocationListener获取定位对象时,给到的将是以默认WGS84为坐标系的点,所以由于该种原因,导致我们在调用的大多数大陆地区api地图时会出错。2.获取到的定位点有可能出现漂移现象,为了给获取到的点打上标记,以便于后续的处理,我希望</div> </li> <li><a href="/article/1901325916496261120.htm" title="关于py不能导入pyw文件内的class的问题" target="_blank">关于py不能导入pyw文件内的class的问题</a> <span class="text-muted">Auspemak-Derafru</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>我有一个window类,调了另外一个py文件里面自己写的class有一天去朋友家玩,顺便想跑一下那个代码,由于他没有编译器,我也没有打包成可执行程序,就安了一个idle。由于我的window类是用qt写的,懒得再pip下载了,就直接在原文件后面加了个main函数,改后缀名为pyw直接跑了回去之后用我的pycham打开,window类直接跑不了了,提示导包错误看了一下竟然是我之前改了的那个文件的问题</div> </li> <li><a href="/article/1901325663923662848.htm" title="珠算之加减法中出现负数情况" target="_blank">珠算之加减法中出现负数情况</a> <span class="text-muted">凌霄上卿</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%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/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> <div>在珠算加减法过程中出现负数情况的处理如果数字A小于B,要求计算A-B,此时出现了小数减大数的情况,其结果应该是负数。在平时,计算A-B时,如果发现A小于B,则计算时只要计算B-A,结果记为负数即可。但是,如果是珠心算加减法的听心算,这样处理就行不通了。在现实中,在加减法的过程中出现负数是常见现象,因此,在珠心算加减法教学中,学生要学会如何处理出现负数的情况。例如,38738-38756。这只是两个</div> </li> <li><a href="/article/1901324403518533632.htm" title="工业相机视频播放(RTSP)" target="_blank">工业相机视频播放(RTSP)</a> <span class="text-muted">CHHC1880</span> <a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%B8%9A%E7%9B%B8%E6%9C%BA/1.htm">工业相机</a><a class="tag" taget="_blank" href="/search/rtsp/1.htm">rtsp</a><a class="tag" taget="_blank" href="/search/ffmpeg/1.htm">ffmpeg</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E6%B5%81/1.htm">推流</a> <div>需求:工业相机图像能在rtsp流上播放。实现手段:C#利用工业相机的SDK拿到图后,通过ffmpeg管道推给流媒体程序,再转流播放。模拟测试:两张图在rtsp上进行轮播</div> </li> <li><a href="/article/1901324150732025856.htm" title="使用Ubuntu编译和安装QT源码" target="_blank">使用Ubuntu编译和安装QT源码</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/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/C%2FC%2B%2B/1.htm">C/C++</a> <div>使用Ubuntu编译和安装QT源码在Linux开发中,QT是非常受欢迎的跨平台应用程序开发框架。它提供了丰富的GUI组件库和工具,使开发人员能够轻松创建功能强大的图形用户界面。然而,有时候我们可能需要从源代码编译和安装QT,以便进行定制化的开发。本文将介绍在Ubuntu上编译和安装QT源码的过程。步骤1:准备环境首先,我们需要确保系统中已经安装了一些必要的软件包和工具。打开终端,并执行以下命令来安</div> </li> <li><a href="/article/1901323393395912704.htm" title="docker 拉取镜像报错 Error response from daemon: Get ‘https://registry-1.docker.io/v2/ ‘: context deadline" target="_blank">docker 拉取镜像报错 Error response from daemon: Get ‘https://registry-1.docker.io/v2/ ‘: context deadline</a> <span class="text-muted">江西谢霆锋</span> <a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a> <div>阿里云服务器:docker拉取镜像报错Errorresponsefromdaemon:Get'https://registry-1.docker.io/v2/':contextdeadline遇到“Errorresponsefromdaemon:Get'https://registry-1.docker.io/v2/':contextdeadlineexceeded”这个错误,通常表示您的网络连接</div> </li> <li><a href="/article/1901322512013258752.htm" title="Go+Vue通用后台管理项目实战 - 带源码课件 6v6-博客网" target="_blank">Go+Vue通用后台管理项目实战 - 带源码课件 6v6-博客网</a> <span class="text-muted">6v6-博客</span> <a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Go+Vue通用后台管理项目实战-带源码课件课程描述本课程从0到1搭建前后端项目,帮助学员掌握Go+Vue开发前后端分离项目的能力。通过实战项目,学员将学习到如何设计系统架构、实现核心功能模块,并最终完成一个完整的后台管理系统。课程亮点前后端分离:基于Go语言后端和Vue前端,实现高效开发模式。实战项目:通过完整项目实战,掌握从需求分析到部署上线的全流程。源码提供:附带完整源码,方便学员学习和二次</div> </li> <li><a href="/article/1901322133938696192.htm" title="5分钟速通【Linux进程】" target="_blank">5分钟速通【Linux进程】</a> <span class="text-muted">2501_91133393</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>写在前面:兄弟们,我手里有个长期项目,考虑接私活的可以看看我GitHub!https://github.com/ccy-233/coder2retire1.什么是进程?进程就是运行中的程序,是系统资源分配的基本单位每个进程都有唯一的PID(进程ID)进程有父子关系,通过ps-ef可以查看2.进程的创建-fork()pid_t pid = fork();-简单理解:fork()就像细胞分裂,一个变两</div> </li> <li><a href="/article/1901322007623036928.htm" title="ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数)" target="_blank">ES6回顾:闭包->(优点:实现工厂函数、记忆化和异步实现)、(应用场景:Promise的then与catch的回调、async/await、柯里化函数)</a> <span class="text-muted">2501_91133322</span> <a class="tag" taget="_blank" href="/search/es6/1.htm">es6</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> <div>写在前面:兄弟们,我手里有个长期项目,考虑接私活的可以看看我GitHub!https://github.com/ccy-233/coder2retire1.闭包(Closure)定义:由函数及其引用的外部词法环境变量组成,即使外部函数执行完毕,内部函数仍能访问这些变量。作用:延长外部函数变量的生命周期,使外部可操作内部数据(如模块化封装)。避免全局变量污染,实现私有变量。缺点:不当使用会导致内存泄</div> </li> <li><a href="/article/1901319488993816576.htm" title="【产品经理】设计一流产品九步法" target="_blank">【产品经理】设计一流产品九步法</a> <span class="text-muted">程矢</span> <a class="tag" taget="_blank" href="/search/Axure%E5%8E%9F%E5%9E%8B%E8%AE%BE%E8%AE%A1/1.htm">Axure原型设计</a><a class="tag" taget="_blank" href="/search/axure/1.htm">axure</a> <div>转载自:老二牛车教育»【产品经理】设计一流产品九步法百度高管舒迅(@舒迅)曾经带领百度贴吧创造出一年内用户注册量增长10倍、浏览量3倍增长的奇迹,作为一名在中国互联网摸爬滚打超过12年的老兵,在和百度内部同事的相互磨砺中,总结出了极其丰富而是用的产品设计经验。他在这篇文章中介绍的九条方法不仅值得每一个PM的认真学习,同样也值得每一个有志于打造出一流产品的互联网创业者和从业者的揣摩。本文描述的产品设</div> </li> <li><a href="/article/1901318984192552960.htm" title="FastAPI Web框架 [1.11]" target="_blank">FastAPI Web框架 [1.11]</a> <span class="text-muted">carefree798</span> <a class="tag" taget="_blank" href="/search/FastAPI/1.htm">FastAPI</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>路径操作配置#路径操作配置#路径操作装饰器支持多种配置参数。#以下参数应直接传递给路径操作装饰器,不能传递给路径操作函数.#status_code状态码:status_code用于定义路径操作响应中的HTTP状态码#可以直接传递int代码,比如404#如果记不住数字码的涵义,也可以用status的快捷常量fromtypingimportOptional,SetfromfastapiimportFa</div> </li> <li><a href="/article/1901318856459218944.htm" title="【Agent】OpenManus 项目架构分析" target="_blank">【Agent】OpenManus 项目架构分析</a> <span class="text-muted">非晓为骁</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/openManus/1.htm">openManus</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><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/agi/1.htm">agi</a> <div>这是我录制的一个视频,主要是描述我理解的OpenManus的思维逻辑,通过这个小的思维逻辑的复现,为后面要再分析其他Agent的实现做一个准备。1.项目概述OpenManus是一个基于大语言模型的智能体框架,旨在提供一个无需邀请码的创意实现平台。项目由MetaGPT社区的贡献者开发,采用Python语言实现。2.系统架构2.1核心组件2.1.1入口层main.py:主程序入口,提供命令行交互界面r</div> </li> <li><a href="/article/1901317848379224064.htm" title="使用二进制位运算,代替十进制乘法(除法)运算" target="_blank">使用二进制位运算,代替十进制乘法(除法)运算</a> <span class="text-muted">真相很简单</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E7%8E%AF%E5%A2%83/1.htm">编程环境</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a><a class="tag" taget="_blank" href="/search/%E4%B9%98%E6%B3%95%E8%BF%90%E7%AE%97/1.htm">乘法运算</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a><a class="tag" taget="_blank" href="/search/%E4%BA%8C%E8%BF%9B%E5%88%B6/1.htm">二进制</a><a class="tag" taget="_blank" href="/search/10%E8%BF%9B%E5%88%B6/1.htm">10进制</a><a class="tag" taget="_blank" href="/search/%E9%AB%98%E6%95%88/1.htm">高效</a> <div>文章目录乘法原理十进制分解程序示例运算结果除法原理十进制分解程序示例运算结果  在嵌入式环境中虽然有乘法运算器,而且芯片运算速度越来越快,但位运算还是最快速的,为了提高计算效率,可以将乘法运算使用位运算替换。乘法原理  若被乘数是2的整数倍,可以直接进行左移运算,这个比较简单,本文解释下当被乘数不是2的整数倍的情况,乘法进行位运算替换的基本原理,分两步因式分解:A∗(B+C)=A∗B+A∗CA*(</div> </li> <li><a href="/article/1901316964786171904.htm" title="RocketMQ 集群架构与部署实践(二)" target="_blank">RocketMQ 集群架构与部署实践(二)</a> <span class="text-muted">计算机毕设定制辅导-无忧学长</span> <a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/RocketMQ/1.htm">RocketMQ</a><a class="tag" taget="_blank" href="/search/rocketmq/1.htm">rocketmq</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>RocketMQ部署实践前期准备要充分在进行RocketMQ的部署之前,我们需要做好一系列的准备工作,确保部署过程的顺利进行。环境要求:操作系统:推荐使用64位的Linux或Unix系统,如CentOS7+、Ubuntu16.04+等,这些系统在稳定性和性能方面表现出色,能够为RocketMQ的运行提供良好的基础。JDK:需要安装64位的JDK1.8及以上版本,RocketMQ是基于Java开发的</div> </li> <li><a href="/article/1901314949947387904.htm" title="NVIDIA下载老版本驱动/CUDA/Video Codec SDK的链接,以及一些解码参数说明" target="_blank">NVIDIA下载老版本驱动/CUDA/Video Codec SDK的链接,以及一些解码参数说明</a> <span class="text-muted">landihao</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>NVIDIA下载老版本驱动/CUDA/VideoCodecSDK的链接从别的网站抄过来的CUDA:https://developer.nvidia.com/cuda-toolkit-archive老驱动:https://www.nvidia.cn/geforce/drivers/VideoCodecSDKhttps://developer.nvidia.com/video-codec-sdk-ar</div> </li> <li><a href="/article/1901314697198628864.htm" title="在卫星通信网络中的TCP/IP 协议适应性研究" target="_blank">在卫星通信网络中的TCP/IP 协议适应性研究</a> <span class="text-muted">欣傅</span> <a class="tag" taget="_blank" href="/search/php/1.htm">php</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/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>目录引言卫星通信网络的特点高延迟特性高误码率带宽受限与动态变化TCP/IP协议在卫星通信网络中面临的挑战拥塞控制机制失效重传机制效率低下协议开销过大TCP/IP协议在卫星通信网络中的适应性改进优化拥塞控制机制改进重传机制降低协议开销结论引言卫星通信网络凭借其覆盖范围广、不受地理条件限制等优势,在全球通信领域发挥着愈发重要的作用。从偏远地区的通信保障到海上船只的网络连接,卫星通信填补了地面通信网络的</div> </li> <li><a href="/article/1901314067021230080.htm" title="附下载 | 2024 OWASP Top 10 基础设施安全风险.pdf" target="_blank">附下载 | 2024 OWASP Top 10 基础设施安全风险.pdf</a> <span class="text-muted">安全方案</span> <a class="tag" taget="_blank" href="/search/OWASP/1.htm">OWASP</a><a class="tag" taget="_blank" href="/search/%E5%9F%BA%E7%A1%80%E8%AE%BE%E6%96%BD%E5%AE%89%E5%85%A8/1.htm">基础设施安全</a> <div>《2024OWASPTop10基础设施安全风险》报告,由OWASP(开放网络应用安全项目)发布,旨在提升企业和组织对基础设施安全风险、威胁与漏洞的意识,并提供高质量的信息和最佳实践建议。报告列出了2024年最重要的10大基础设施安全风险,并通过案例分析展示了这些风险的实际影响。一、报告背景与目的背景:2024企业信息安全峰会以“直面信息安全挑战,创造最佳实践”为主题,聚焦信息安全技术与实践,致力于</div> </li> <li><a href="/article/1901313436864802816.htm" title="ZYNQ-7000 平台LwIP RAW Socket 模式下 TCP速率测试(Jperf)" target="_blank">ZYNQ-7000 平台LwIP RAW Socket 模式下 TCP速率测试(Jperf)</a> <span class="text-muted">WILLFr</span> <a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</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%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>在ZYNQ-7000平台下,使用Jperf测试LwIPRAWSocket模式下的TCP速率,工程代码适配到Vivado2018.2SDK版本,并在zynq-7000平台验证测试。LwIPRAWsocket模式下,TCP速率大于900Mbps,Jperf测试结果如下:工程文件:https://download.csdn.net/download/csdn6403/90482672?spm=1011.</div> </li> <li><a href="/article/1901313058182066176.htm" title="Python实现大麦网抢票的四大关键技术点解析" target="_blank">Python实现大麦网抢票的四大关键技术点解析</a> <span class="text-muted">小白学大数据</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BF%E7%89%9B%E4%BA%91%E4%BB%A3%E7%90%86/1.htm">亿牛云代理</a><a class="tag" taget="_blank" href="/search/python/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><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/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%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a> <div>前言随着互联网的普及和发展,线上购票已经成为人们生活中不可或缺的一部分。然而,在抢购热门演出门票时,往往会遇到抢票难、抢票快的问题,有时候一秒钟的延迟就意味着与心仪的演出擦肩而过。为了解决这个问题,技术爱好者们开始探索利用Python多线程技术来提高抢票效率。本文将介绍Python实现大麦网抢票的四大关键技术点,帮助读者了解抢票脚本的核心原理,并通过示例代码详细说明实现过程。1.网页解析技术大麦网</div> </li> <li><a href="/article/1901312679776153600.htm" title="Python开发合并多个PDF文件" target="_blank">Python开发合并多个PDF文件</a> <span class="text-muted">互联网搬砖老肖</span> <a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E5%8A%9B%E8%AE%A1%E5%88%92/1.htm">原力计划</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>前言在我们的工作中,可能有以下场景需要用到合并多个PDF:文档归档:在企业或组织中,常常需要将相关的文档(如合同、报告、发票等)合并为一个PDF文件,以便于归档和管理。报告生成:在学术研究或项目管理中,研究人员或项目经理可能需要将多个研究报告、数据分析或项目进展文档合并为一个完整的报告,以便于分享和展示。电子书制作:作者或出版商在制作电子书时,可能需要将多个章节或部分合并为一个PDF文件,以便于读</div> </li> <li><a href="/article/1901311922595229696.htm" title="[Skynet 基础】(二) 创建日志服务" target="_blank">[Skynet 基础】(二) 创建日志服务</a> <span class="text-muted">OSwich</span> <a class="tag" taget="_blank" href="/search/skynet%E5%9F%BA%E7%A1%80/1.htm">skynet基础</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录概述基本配置使用Lua定制日志服务概述日志模块主要用于格式化输出程序日志,方便后续从日志中定位程序运行过程中出现的问题。当然日志除了日志内容本身之外,还应该包括文件名、行号、时间戳、线程、协程号、日志级别等信息。在输出错误日志时,还应附加程序的函数调用栈信息,便于后续分析和排查问题。日志系统一般分为5个等级:DEBUG:调试用的日志,线上运行时屏蔽不输出INFO:普通日志,线上运行时输出,</div> </li> <li><a href="/article/1901311795700756480.htm" title="C# 项目常用库" target="_blank">C# 项目常用库</a> <span class="text-muted">OSwich</span> <a class="tag" taget="_blank" href="/search/wpf/1.htm">wpf</a> <div>1.MVVM框架(CommunityToolkit.Mvvm)平台和运行时库相独立-.NET2.0标准和.NET5(与UI框架无关)简单易用-在程序结构和编码范式上没有严格要求,即使用灵活自由组件-自由选择要使用的组件参考实现-精炼且性能好,提供了基础库的接口实现,但缺乏直接使用它们的具体类型这个包针对是.NET标准的,所以它能应用于任何平台:UWP,WinForms,WPF,Xamarin,Un</div> </li> <li><a href="/article/1901311289804779520.htm" title="大麦抢票自动化app 黄牛都在用" target="_blank">大麦抢票自动化app 黄牛都在用</a> <span class="text-muted">AZHYL33</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">经验分享</a> <div>安卓:https://pan.quark.cn/s/988d9b2745ab电脑:https://pan.quark.cn/s/988d9b2745ab大麦抢票自动化教程,连夜赶制了这个教程。前提是有电脑,如果没有电脑的话,用手机的话也可以去解决问题,爱你们哦。【特别说明】:部分演唱会或者是剧场不支持PC端购买,这个是无法解决的问题。但是80%都可以用这个去玩。第一个链接里面是教程,大家跟着教程一</div> </li> <li><a href="/article/1901311287707627520.htm" title="R语言的移动应用开发" target="_blank">R语言的移动应用开发</a> <span class="text-muted">滕若岚</span> <a class="tag" taget="_blank" href="/search/%E5%8C%85%E7%BD%97%E4%B8%87%E8%B1%A1/1.htm">包罗万象</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</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> <div>R语言的移动应用开发在数据科学和统计分析的大潮中,R语言因其强大的数据处理和可视化能力而备受青睐。然而,R语言对移动应用开发的适用性并未得到广泛关注。本文将探讨R语言在移动应用开发中的潜力及其工具,并提供一些实践示例,希望能为读者在这一新兴领域的探索提供帮助。一、R语言概述R语言是一种用于统计计算和图形绘制的编程语言,因其简洁的语法和丰富的包生态系统受到数据科学家的广泛使用。R语言的强大之处在于其</div> </li> <li><a href="/article/1901310657672835072.htm" title="使用 Python 爬取高德地图交通数据并进行数据分析(完整教程)" target="_blank">使用 Python 爬取高德地图交通数据并进行数据分析(完整教程)</a> <span class="text-muted">Python爬虫项目</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/selenium/1.htm">selenium</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/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><a class="tag" taget="_blank" href="/search/beautifulsoup/1.htm">beautifulsoup</a> <div>一、引言在现代交通系统中,交通数据是进行智能交通管理、交通流量预测和交通规划的重要依据。高德地图(Amap)作为国内最权威的地理和交通信息平台之一,提供了丰富的开放API,允许开发者访问包括实时交通路况、路线规划、地理编码等各种数据。本教程将使用Python构建一个完整的爬虫程序,调用高德地图API,解析和存储交通数据,并通过数据分析和可视化深入挖掘交通流量特征。二、高德地图API简介2.1高德地</div> </li> <li><a href="/article/1901310279610855424.htm" title="YOLOv8改进添加swin transformer" target="_blank">YOLOv8改进添加swin transformer</a> <span class="text-muted">兜里没有一毛钱</span> <a class="tag" taget="_blank" href="/search/YOLO%E7%B3%BB%E5%88%97%E6%94%B9%E8%BF%9B%E7%AE%A1%E7%90%86/1.htm">YOLO系列改进管理</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a><a class="tag" taget="_blank" href="/search/transformer/1.htm">transformer</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>最近在做实验,需要改进YOLOv8,去网上找了很多教程都是充钱才能看的,NND这对一个一餐只能吃两个菜的大学生来说是多么的痛苦,所以自己去找代码手动改了一下,成功实现YOLOv8改进添加swintransformer,本人水平有限,改得不对的地方请自行改正。第一步,在ultralytics\nn\modules\block.py代码中的最后部分中添加swintransformer代码,代码如下:#</div> </li> <li><a href="/article/1901310277018775552.htm" title="R语言:初始环境配置" target="_blank">R语言:初始环境配置</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/r%E8%AF%AD%E8%A8%80/1.htm">r语言</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>文章目录R语言的配置URL和种子R语言的配置在R中安装languageserver包:(直接在R.exe中运行即可)install.packages("languageserver")关于jupyternotebook如何编写R语言:(好像每种jupyternotebook支持的编程语言,解释器都有对应的jupyternotebook)install.packages('IRkernel')IRk</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>