Flask四之模板

四、模板

FMTV
F:form表单
M:Model模型(数据库)
T:Template模板
V:view视图(路由)

1、渲染模板

模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值
只在请求的上下文中才能知道。 使用真实值替换变量,再返回最终得到的响应字符
串,这一过程称为渲染。可以使用 render_template() 方法来渲染模板。你需要做
的一切就是将模板名和你想作为关键字的参数传入模板的变量。
Flask 会在 templates 文件夹里寻找模板。所以,如果你的应用是个模块,这个文
件夹应该与模块同级;如果它是一个包,那么这个文件夹作为包的子目录:
模板:
/application.py
/templates
    /hello.html

包:

/application
    /__init__.py
    /templates
        /hello.html

【hello.html】

Hello World!

from flask import render_template @app.route('/hellotemplate/') def hellotemplate(): return render_template('hello.html')

模板引擎
Flask使用了一个名为 Jinja2 的强大模板引擎

  • {% ... %} Jinja语句,例如判断、循环语句

  • {{ ... }} 变量,会显示在浏览器中

  • {# ... #} 注释,不会输出到浏览器中

2、变量规则

在模板中使用的 {{ name }} 结构表示一个变量,它是一种特殊的占位符,告诉
模板引擎这个位置的值从渲染模板时使用的数据中获取。
【helloname.html】

Hello, {{ name }}!

@app.route('/hellotemplate/') def helloname(name): return render_template('helloname.html',name = name)

可以使用过滤器修改变量,过滤器名添加在变量名之后,中间使用竖线分隔。

3、控制结构

1、条件控制语句
【if.html】

{% if name %}
hello, {{name}}
{% else %}
hello, world!
{% endif %}

2、 for 循环
【for.html】

    {% for a in range(10) %}
  1. a
  2. {% endfor %}
@app.route('/for/') def fortemplate(): return render_template('for.html')

3、Jinja2 还支持宏(macro) 。宏类似于 Python 代码中的函数(def)。
【macro.html】

{% macro myprint(A) %}
this is {{ A }}
{% endmacro %}

{{ myprint(A) }}


@app.route('/macro/')
def macrotamplate(a):
    return render_template('macro.html',A = a)

为了重复使用宏,我们可以将其保存在单独的文件中,然后在需要使用的模板中导入:
【macro2.html】

{% from 'macro.html' import myprint %}
{{ myprint(A) }}

@app.route('/macro2/')
def macro2template(a):
    return render_template('macro2.html',A = a)

4、包含(include)
【include.html】

{% include 'macro.html' %}


@app.route('/include/')
def includetemplate(a):
    return render_template('include.html',A = a)

【注意】
包含进来的文件里的所有变量也包含进来了,需要在视图函数中指定

4、模板继承

首先,创建一个名为 base.html 的基模板:
【base.html】



    {% block head %}
    
        {% block title %}
        {% endblock %}
        - My Application
    
    {% endblock %}



{% block body %}
{% endblock %}


block 标签定义的元素可在衍生模板中修改。下面这个示例是基模板的衍生模板:
【extend.html】

% extends "base.html" %}
{% block title %}Index{% endblock %}
{% block head %}
{{ super() }}

super

{% endblock %} {% block body %}

Hello, World!

{% endblock %}
extends 指令声明这个模板衍生自 base.html。在 extends 指令之后,基模板中的
3个块被重新定义,模板引擎会将其插入适当的位置。如果想添加内容到在父模板
内已经定义的块,又不想失去父模板里的内容,可以使用super函数

5、使用Flask-Bootstrap

Flask-Bootstrap 使用 pip安装:

(venv) $ pip install flask-bootstrap

Flask 扩展一般都在创建程序实例后就初始化。
初始化 Flask-Bootstrap 之后,就可以在程序中使用一个包含所有 Bootstrap 文件
的基模板。
【boootstrap.html】

{% extends "bootstrap/base.html" %}

{% block title %}Flasky{% endblock %}

{% block navbar %}

{% endblock %}

{% block content %}
{% endblock %}
Jinja2 中的 extends 指令从 Flask-Bootstrap 中导入 bootstrap/base.html,从而
实现模板继承。

Flask-Bootstrap 中的基模板提供了一个网页框架,引入了 Bootstrap 中的所有 CSS 
和JavaScript 文件。基模板中定义了可在衍生模板中重定义的块。 block 和 endblock 
指令定义的块中的内容可添加到基模板中。
上面这个 boootstrap.html 模板定义了 3 个块,分别名为 title、 navbar 和 content。
这些块都是基模板提供的, 可在衍生模板中重新定义。 title 块的作用很明显,其中
的内容会出现在渲染后的 HTML 文档头部,放在  标签中。 navbar 和 content 
这两个块分别表示页面中的导航条和主体内容。在这个模板中, navbar 块使用 Bootstrap 
组件定义了一个简单的导航条。content 块中有个<div> 容器,其中包含一个页面头部。
之前版本的模板中的欢迎信息,现在就放在这个页面头部。</code></pre> 
 <pre><code>from flask_bootstrap import Bootstrap
bootstrap = Bootstrap(app)
@app.route('/bootstrap/<name>')
def bootstraptemplate(name):
    return render_template('boootstrap.html',name = name)</code></pre> 
 <p><strong> 【注意】 </strong> <br>很多块都是 Flask-Bootstrap 自用的,如果直接重定义可能会导致一些问题。例如, <br>Bootstrap 所需的文件在 styles 和 scripts 块中声明。如果程序需要向已经有内<br>容的块中添加新内容,必须使用Jinja2 提供的 super() 函数。例如,如果要在衍生<br>模板中添加新的 JavaScript 文件,需要这么定义 scripts 块:</p> 
 <pre><code>{% block scripts %}
{{ super() }}
<script type="text/javascript" src="my-script.js"></script>
{% endblock %}</code></pre> 
 <h3>6、自定义错误页面</h3> 
 <p>【templates/404.html】</p> 
 <pre><code><h1> Page is not Found </h1>
@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404</code></pre> 
 <p>【templates/base.html: 包含导航条的程序基模板】</p> 
 <pre><code>{% extends "bootstrap/base.html" %}

{% block title %}Flasky{% endblock %}

{% block head %}
{{ super() }}
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x -icon">
<link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x -icon">
{% endblock %}

{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">Flasky</a>
        </div>
        <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
                <li><a href="/">Home</a></li>
            </ul>
        </div>
    </div>
</div>
{% endblock %}

{% block content %}
<div class="container">
{% block page_content %}{% endblock %}
</div>
{% endblock %}

{% block scripts %}
{{ super() }}
{{ moment.include_moment() }}
{% endblock %}</code></pre> 
 <p>这个模板的 content 块中只有一个 <div> 容器,其中包含了一个名为 <br>page_content 的新的空块,块中的内容由衍生模板定义。</p> 
 <p>【templates/404.html:使用模板继承机制自定义 404 错误页面】</p> 
 <pre><code>{% extends "base.html" %}
{% block title %}Flasky - Page Not Found{% endblock %}
{% block page_content %}
<div class="page-header">
<h1>Not Found</h1>
</div>
{% endblock %}</code></pre> 
 <p>templates/boootstrap.html 现在可以通过继承这个基模板来简化内容:<br>【 templates/boootstrap.html: 使用模板继承机制简化页面模板】</p> 
 <pre><code>{% extends "base.html" %}
{% block title %}Flasky{% endblock %}
{% block page_content %}
<div class="page-header">
<h1>Hello, {{ name }}!</h1>
</div>
{% endblock %}</code></pre> 
 <h3>7、静态文件</h3> 
 <p>默认设置下, Flask 在程序根目录中名为 static 的子目录中寻找静态文件。<br>如果需要,可在static 文件夹中使用子文件夹存放文件。给静态文件生成 <br>URL ,使用特殊的 'static' 端点名:<br>【westeros.html】</p> 
 <pre><code><img src = "{{url_for('static',filename = 'westeros.jpg')}}">
@app.route('/westeros/')
def westeros():
    return render_template('westeros.html')</code></pre> 
 <p>这个文件应该存储在文件系统上的 static/westeros.jpg 。</p> 
 <h3>8、使用Flask-Moment本地化日期和时间</h3> 
 <p>lask-Moment 是一个 Flask 程序扩展,能把moment.js 集成到 Jinja2 模<br>板中。 Flask-Moment 可以使用 pip 安装:</p> 
 <pre><code>(venv) $ pip install flask-moment</code></pre> 
 <p>这个扩展的初始化方法和Bootstrap一样,以程序实例app为参数:</p> 
 <pre><code>from flask_moment import Moment
moment = Moment(app)</code></pre> 
 <p>除了 moment.js, Flask-Moment 还依赖 jquery.js。要在 HTML 文档的某个<br>地方引入这两个库,可以直接引入,这样可以选择使用哪个版本,也可使用扩<br>展提供的辅助函数,从内容分发网络(Content Delivery Network, CDN)中<br>引入通过测试的版本。 Bootstrap 已经引入了 jquery.js, 因此只需引入 <br>moment.js即可。<br>【base.html中增加了】</p> 
 <pre><code>{% block scripts %}
{{ super() }}
{{ moment.include_moment() }}
{% endblock %}</code></pre> 
 <p>【moment.html】</p> 
 <pre><code>{% extends "base.html" %}
{% block page_content %}
<div class="page-header">
<h1>Hello World!</h1>
</div>
<p>The local date and time is {{moment(current_time).format('LLL')}}.</p>
<p>That was {{moment(current_time).fromNow(refresh = true)}}.</p>
{% endblock %}</code></pre> 
 <p>把变量current_time 传入模板进行渲染</p> 
 <pre><code>from datetime import datetime
@app.route('/moment/')
def momenttemplate():
return render_template('moment.html',current_time = datetime.utcnow())</code></pre> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1177048273412763648"></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">你可能感兴趣的:(sqlite,centos,linux,django,python)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1892484465444319232.htm"
                           title="heidisql连接远程数据库_【已解决】HeidiSQL连接(登录)MySQL数据库报错10061问题..." target="_blank">heidisql连接远程数据库_【已解决】HeidiSQL连接(登录)MySQL数据库报错10061问题...</a>
                        <span class="text-muted">weixin_39589511</span>
<a class="tag" taget="_blank" href="/search/heidisql%E8%BF%9E%E6%8E%A5%E8%BF%9C%E7%A8%8B%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">heidisql连接远程数据库</a>
                        <div>windows核心编程---第六章线程的调度每个线程都有一个CONTEXT结构,保存在线程内核对象中.大约每隔20mswindows就会查看所有当前存在的线程内核对象.并在可调度的线程内核对象中选择一个,将其保存在CONTEXT结构的值载入c...【转】SQLite提示databasediskimageismalformed的解决方法SQLite有一个很严重的缺点就是不提供Repair命令.导致死</div>
                    </li>
                    <li><a href="/article/1892483583331856384.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/%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/%E5%AE%9E%E6%88%98%E6%A1%88%E4%BE%8B/1.htm">实战案例</a>
                        <div>引言在当今信息爆炸的时代,互联网上充斥着海量的用户言论和观点。了解舆论风向对于企业、政府机构以及研究者等具有重要的意义,可以帮助他们及时把握公众情绪、调整策略与决策。Python作为一种强大的编程语言,在数据爬取与分析方面具有得天独厚的优势,能够助力我们高效地实现舆情监测与深入剖析。一、环境搭建与目标确定1.环境搭建为了顺利完成爬虫与数据分析任务,首先需要确保你的开发环境已经安装了以下Python</div>
                    </li>
                    <li><a href="/article/1892481187906121728.htm"
                           title="麒麟v10安装mysql5.7(ARM架构)" target="_blank">麒麟v10安装mysql5.7(ARM架构)</a>
                        <span class="text-muted">qqxinxi</span>
<a class="tag" taget="_blank" href="/search/arm%E5%BC%80%E5%8F%91/1.htm">arm开发</a>
                        <div>下载路径:华为云镜像麒麟v10是潮流时代的新时髦的linux操作系统,但随着ARM架构流行,出现了一些卡点,不以为然,没当回事的大吃一惊。经常卡住。例如:在安装mysql5.7(ARM架构)最简单:使用rpmmysql-5.7.27.1.el7.aarch64.rpm文件比较小下载完之后rpm-ivhmysql-5.7.27.1.el7.aarch64.rpm比较简单常用的方法,再不能连接互联网时</div>
                    </li>
                    <li><a href="/article/1892480051669168128.htm"
                           title="PyCharm 集成 DeepSeek:本地运行 or API 直连?打造你的 AI 编程神器!" target="_blank">PyCharm 集成 DeepSeek:本地运行 or API 直连?打造你的 AI 编程神器!</a>
                        <span class="text-muted">AI云极</span>
<a class="tag" taget="_blank" href="/search/%E3%80%90AI%E6%99%BA%E8%83%BD%E7%B3%BB%E5%88%97%E3%80%91/1.htm">【AI智能系列】</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</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/ide/1.htm">ide</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a>
                        <div>在AI赋能编程的时代,如何让AI辅助写代码,提升开发效率?DeepSeek作为一款开源、强大、免费的AI编程助手,结合PyCharm,能够大幅提升Python编程体验。今天,我们就来详细讲解如何在PyCharm中接入DeepSeek,无论你想使用本地部署的DeepSeek,还是官方API版本,都能轻松实现!为什么选择DeepSeek+PyCharm?DeepSeekR1采用6710亿参数的MoE(</div>
                    </li>
                    <li><a href="/article/1892480052910682112.htm"
                           title="Python3.5源码分析-sys模块及site模块导入" target="_blank">Python3.5源码分析-sys模块及site模块导入</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/Python%E5%88%86%E6%9E%90/1.htm">Python分析</a><a class="tag" taget="_blank" href="/search/python%E6%BA%90%E7%A0%81/1.htm">python源码</a>
                        <div>Python3源码分析本文环境python3.5.2。参考书籍>python官网Python3的sys模块初始化根据分析完成builtins初始化后,继续分析sys模块的初始化,继续分析_Py_InitializeEx_Private函数的执行,void_Py_InitializeEx_Private(intinstall_sigs,intinstall_importlib){...sysmod=</div>
                    </li>
                    <li><a href="/article/1892476394009587712.htm"
                           title="【CUDA】Pytorch_Extensions" target="_blank">【CUDA】Pytorch_Extensions</a>
                        <span class="text-muted">joker D888</span>
<a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/cuda/1.htm">cuda</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a>
                        <div>【CUDA】Pytorch_Extensions为什么要开发CUDA扩展?当我们在PyTorch中实现自定义算子时,通常有两种选择:使用纯Python实现(简单但效率低)使用C++/CUDA扩展(高效但需要编译)对于计算密集型的操作(如神经网络中的自定义激活函数),使用CUDA扩展可以获得接近硬件极限的性能。本文将以实现一个多项式激活函数x²+x+1为例,展示完整的开发流程。完整CUDA扩展代码解</div>
                    </li>
                    <li><a href="/article/1892475006722568192.htm"
                           title="Labelbox:引领AI与人类协作的未来" target="_blank">Labelbox:引领AI与人类协作的未来</a>
                        <span class="text-muted">魏兴雄Milburn</span>

                        <div>Labelbox:引领AI与人类协作的未来labelbox-pythonLabelboxPythonClient项目地址:https://gitcode.com/gh_mirrors/la/labelbox-python项目介绍Labelbox是一款专为企业和学术研究社区设计的开源工具,旨在简化数据标注、生成高质量的人类反馈数据、评估和提升模型性能,并通过无缝结合AI与人类工作流程来自动化任务。无</div>
                    </li>
                    <li><a href="/article/1892474880302051328.htm"
                           title="探索HeidiSQL:一款强大的数据库管理工具" target="_blank">探索HeidiSQL:一款强大的数据库管理工具</a>
                        <span class="text-muted">夏庭彭Maxine</span>

                        <div>探索HeidiSQL:一款强大的数据库管理工具HeidiSQLHeidiSQL:是一个免费且强大的SQL编辑器和数据库管理工具,支持MySQL、PostgreSQL、SQLite等多种数据库。适合数据库管理员和开发者使用HeidiSQL管理数据库和查询数据。项目地址:https://gitcode.com/gh_mirrors/he/HeidiSQL项目介绍HeidiSQL是一款开源的图形化数据库</div>
                    </li>
                    <li><a href="/article/1892474250212732928.htm"
                           title="centos操作系统安装R包单细胞拟时序分析CytoTRACE2" target="_blank">centos操作系统安装R包单细胞拟时序分析CytoTRACE2</a>
                        <span class="text-muted">探序基因</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><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>
                        <div>探序基因肿瘤研究院整理作者操作系统为centosstream8,R版本为4.3.3devtools::install_github("digitalcytometry/cytotrace2",subdir="cytotrace2_r")中途出现错误:*installing*source*package‘RcppGSL’...**成功将‘RcppGSL’程序包解包并MD5和检查**usingstag</div>
                    </li>
                    <li><a href="/article/1892474123800604672.htm"
                           title="基于python使用scanpy分析单细胞转录组数据" target="_blank">基于python使用scanpy分析单细胞转录组数据</a>
                        <span class="text-muted">探序基因</span>
<a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%BB%86%E8%83%9E%E5%88%86%E6%9E%90/1.htm">单细胞分析</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>探序基因肿瘤研究院整理相关后缀的格式介绍:.h5ad:是一种用于存储单细胞数据的文件格式,可以通过anndata库在Python中处理.loom:高效的数据存储格式(.loom文件),使得用户可以轻松地存储、查询和分析大规模的单细胞数据集。Loompy的设计目标是提供一个快速、灵活且易于使用的工具,以支持生物信息学家和研究人员在单细胞水平上进行数据分析。python的单细胞转录组数据结构说明:da</div>
                    </li>
                    <li><a href="/article/1892474123364397056.htm"
                           title="GATK3.5GATK4.0与java版本的关系" target="_blank">GATK3.5GATK4.0与java版本的关系</a>
                        <span class="text-muted">探序基因</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>探序基因肿瘤研究院整理操作系统centosstream9yum安装java后,输入java-version可看到:openjdkversion"11.0.20.1"2023-08-24LTSOpenJDKRuntimeEnvironment(Red_Hat-11.0.20.1.1-2)(build11.0.20.1+1-LTS)OpenJDK64-BitServerVM(Red_Hat-11.0.</div>
                    </li>
                    <li><a href="/article/1892473239033147392.htm"
                           title="本地搭建小型 DeepSeek 并进行微调" target="_blank">本地搭建小型 DeepSeek 并进行微调</a>
                        <span class="text-muted">非著名架构师</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E6%96%87%E6%A1%A3/1.htm">知识文档</a><a class="tag" taget="_blank" href="/search/%E6%99%BA%E8%83%BD%E7%A1%AC%E4%BB%B6/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%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a>
                        <div>本文将指导您在本地搭建一个小型的DeepSeek模型,并进行微调,以处理您的特定数据。1.环境准备Python3.7或更高版本PyTorch1.8或更高版本CUDA(可选,用于GPU加速)Git2.克隆DeepSeek仓库bash复制gitclonehttps://github.com/deepseek-ai/deepseek.gitcddeepseek3.安装依赖bash复制pipinstall</div>
                    </li>
                    <li><a href="/article/1892469833619009536.htm"
                           title="linux网络安全" target="_blank">linux网络安全</a>
                        <span class="text-muted">网络安全Max</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>Linux网络安全一直是IT行业中备受关注的话题,而红帽作为Linux操作系统的知名发行版,在网络安全领域也扮演着重要的角色。红帽公司一直致力于为用户提供安全可靠的Linux解决方案,以帮助用户建立强大的网络安全防护体系。首先,红帽操作系统本身具有较高的安全性。作为一款开源操作系统,Linux具有代码透明、强大的权限管理和丰富的安全功能等特点,这使得Linux相对于其他闭源操作系统更加安全可靠。而</div>
                    </li>
                    <li><a href="/article/1892468193570648064.htm"
                           title="使用Python和OpenCV实现图像像素压缩与解压" target="_blank">使用Python和OpenCV实现图像像素压缩与解压</a>
                        <span class="text-muted">东方佑</span>
<a class="tag" taget="_blank" href="/search/%E9%87%8F%E5%AD%90%E5%8F%98%E6%B3%95/1.htm">量子变法</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/opencv/1.htm">opencv</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和OpenCV库来实现一种简单的图像像素压缩算法。我们将详细讨论代码的工作原理,并提供一个具体的示例来演示该过程。1.引言随着数字媒体的普及,图像处理成为了一个重要的领域。无论是为了减少存储空间还是加快网络传输速度,图像压缩技术都扮演着至关重要的角色。这里,我们提出了一种基于像素重复模式的简单压缩算法,它适用于具有大量连续相同像素值的图像。2.技术栈介绍2.</div>
                    </li>
                    <li><a href="/article/1892468067355652096.htm"
                           title="【Python系列】Python 解释器的站点配置" target="_blank">【Python系列】Python 解释器的站点配置</a>
                        <span class="text-muted">Kwan的解忧杂货铺@新空间代码工作室</span>
<a class="tag" taget="_blank" href="/search/s1/1.htm">s1</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>
                        <div>欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。推荐:kwan的首页,持续学习,不断总结,共同进步,活到老学到老导航檀越剑指大厂系列:全面总结java核心技术点,如集合,jvm,并发编程redis,kafka,Spring,微服务,Netty等常用开发工具系列:罗列常用的开发工具,如IDEA,M</div>
                    </li>
                    <li><a href="/article/1892466429802901504.htm"
                           title="深入解析JVM性能问题定位与优化" target="_blank">深入解析JVM性能问题定位与优化</a>
                        <span class="text-muted">测试不打烊</span>
<a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/1.htm">性能测试</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a>
                        <div>JVM性能问题定位与优化详解:架构、内存、Linux命令与监控工具的全面解析引言Java虚拟机(JVM)是运行Java应用程序的核心组件,它管理内存、执行字节码,并提供垃圾回收机制等功能。然而,随着应用规模的增长,JVM的性能问题时常会成为系统瓶颈。为了有效定位和优化JVM性能问题,我们需要从JVM架构、内存管理、Linux系统命令,以及监控工具入手,对JVM的各类指标进行详尽的分析和优化。本文将</div>
                    </li>
                    <li><a href="/article/1892466301994070016.htm"
                           title="安装与部署openeuler 的HA" target="_blank">安装与部署openeuler 的HA</a>
                        <span class="text-muted">VX-IT BANG</span>
<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><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>实现原理LinuxHA(HighAvailability,高可用性)是指利用Linux操作系统构建的高可用集群解决方案,旨在确保关键业务服务在面临硬件故障、软件错误、网络中断等各种异常情况时,依然能够持续、稳定地运行,尽量减少服务中断时间,提高系统的可靠性和可用性。以下从几个方面详细介绍:关键组件和技术心跳监测(Heartbeat)这是LinuxHA系统中最基础也是最重要的组件之一。它通过在节点之</div>
                    </li>
                    <li><a href="/article/1892463022924951552.htm"
                           title="利用Beautiful Soup和Pandas进行网页数据抓取与清洗处理实战" target="_blank">利用Beautiful Soup和Pandas进行网页数据抓取与清洗处理实战</a>
                        <span class="text-muted">傻啦嘿哟</span>
<a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</a>
                        <div>目录一、准备工作二、抓取网页数据三、数据清洗四、数据处理五、保存数据六、完整代码示例七、总结在数据分析和机器学习的项目中,数据的获取、清洗和处理是非常关键的步骤。今天,我们将通过一个实战案例,演示如何利用Python中的BeautifulSoup库进行网页数据抓取,并使用Pandas库进行数据清洗和处理。这个案例不仅适合初学者,也能帮助有一定经验的朋友快速掌握这两个强大的工具。一、准备工作在开始之</div>
                    </li>
                    <li><a href="/article/1892462644707782656.htm"
                           title="ubuntu22.4搭建单节点es8.1" target="_blank">ubuntu22.4搭建单节点es8.1</a>
                        <span class="text-muted">宇智波云</span>
<a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE%E9%A1%B9%E7%9B%AE/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/elasticsearch/1.htm">elasticsearch</a>
                        <div>下载对应的包elasticsearch-8.1.1-linux-x86_64.tar.gz创建es租户groupaddelasticsearcuseraddelasticsearch-gelasticsearch-pelasticsearchchmodu+w/etc/sudoerschmod-Relasticsearch:elasticsearchelasticsearch修改配置文件vim/et</div>
                    </li>
                    <li><a href="/article/1892462009589493760.htm"
                           title="python做一个注册界面_python如何做一个登录注册界面" target="_blank">python做一个注册界面_python如何做一个登录注册界面</a>
                        <span class="text-muted">weixin_39824033</span>
<a class="tag" taget="_blank" href="/search/python%E5%81%9A%E4%B8%80%E4%B8%AA%E6%B3%A8%E5%86%8C%E7%95%8C%E9%9D%A2/1.htm">python做一个注册界面</a>
                        <div>python做一个登录注册界面的方法:首先初始化一个window界面,并使用画布实现欢迎的logo;然后用代码实现登录和注册按钮;接着并进行登录判断代码;最后完成注册界面即可。【相关学习推荐:python视频教程】python做一个登录注册界面的方法:一、登录界面1、首先初始化一个window界面window=tk.Tk()window.title('WelcometoMofanPython')w</div>
                    </li>
                    <li><a href="/article/1892462009975369728.htm"
                           title="python读取zip包内文件_Python模块学习:zipfile zip文件操作" target="_blank">python读取zip包内文件_Python模块学习:zipfile zip文件操作</a>
                        <span class="text-muted">weixin_40001634</span>
<a class="tag" taget="_blank" href="/search/python%E8%AF%BB%E5%8F%96zip%E5%8C%85%E5%86%85%E6%96%87%E4%BB%B6/1.htm">python读取zip包内文件</a>
                        <div>最近在写一个网络客户端下载程序,用于下载服务器上的数据。有些数据(如文本,office文档)如果直接传输的话,将会增加通信的数据量,使下载时间变长。服务器在传输这些数据之前先对其进行压缩,客户端接收到数据之后进行解压,这样可以减小网通传输数据的通信量,缩短下载的时间,从而增加客户体验。以前用C#做类似应用程序的时候,我会用SharpZipLib这个开源组件,现在用Python做类似的工作,只要使用</div>
                    </li>
                    <li><a href="/article/1892461756756848640.htm"
                           title="python制作登陆窗口_python登陆界面" target="_blank">python制作登陆窗口_python登陆界面</a>
                        <span class="text-muted">weixin_39758494</span>
<a class="tag" taget="_blank" href="/search/python%E5%88%B6%E4%BD%9C%E7%99%BB%E9%99%86%E7%AA%97%E5%8F%A3/1.htm">python制作登陆窗口</a>
                        <div>广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!print(账号密码错误!请重试。)returnfalsebutton(master,text=登陆,width=10,command=test).grid(row=3,column=0,sticky=w,padx=10,pady=5)button(master,text=退出,wid</div>
                    </li>
                    <li><a href="/article/1892461377310748672.htm"
                           title="如何使用零配置的Sphinx生成Python文档?" target="_blank">如何使用零配置的Sphinx生成Python文档?</a>
                        <span class="text-muted">潮易</span>
<a class="tag" taget="_blank" href="/search/sphinx/1.htm">sphinx</a><a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%96%87%E6%A3%80%E7%B4%A2/1.htm">全文检索</a><a class="tag" taget="_blank" href="/search/%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E/1.htm">搜索引擎</a>
                        <div>如何使用零配置的Sphinx生成Python文档?在Python编程中,编写文档是非常重要的。一个好的文档可以帮助其他开发者理解和使用你的代码。Sphinx是一个用于生成Python项目的文档的静态网页生成器,它支持多种文档格式,包括ReStructuredText和Markdown。以下是使用零配置的方式来使用Sphinx生成Python文档的详细步骤:1.首先,确保你已经安装了Sphinx。打</div>
                    </li>
                    <li><a href="/article/1892461378300604416.htm"
                           title="如何订阅&q;/扫描&q;主题、修改消息并发布到新主题?" target="_blank">如何订阅&q;/扫描&q;主题、修改消息并发布到新主题?</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>如何订阅&q;/扫描&q;主题、修改消息并发布到新主题?这个问题涉及到Python编程中的MQTT(MessageQueuingTelemetryTransport)库的使用,该库允许我们创建客户端订阅和发布消息到MQTT服务器。以下是一个简单的步骤:1.安装MQTT库:可以使用pip安装`paho-mqtt`库。```pythonpipinstallpaho-mqtt```2.创建一个MQTT客</div>
                    </li>
                    <li><a href="/article/1892458728813293568.htm"
                           title="Linux发展史:从个人项目到开源帝国的技术演进" target="_blank">Linux发展史:从个人项目到开源帝国的技术演进</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/%E5%A4%A7%E6%A8%A1%E5%9E%8B/1.htm">大模型</a><a class="tag" taget="_blank" href="/search/Linux/1.htm">Linux</a><a class="tag" taget="_blank" href="/search/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a>
                        <div>一、起源与诞生(1960s-1991)UNIX的奠基Linux的基因可追溯至1969年贝尔实验室的KenThompson与DennisRitchie。为运行《星际旅行》游戏,Thompson用BCPL语言开发了UNIX原型,后由Ritchie以C语言重构,成为首个可移植操作系统12。其“一切皆文件”的设计哲学深刻影响了后续系统架构1。MINIX的启发1987年,AndrewS.Tanenbaum开</div>
                    </li>
                    <li><a href="/article/1892458724304416768.htm"
                           title="Python-tkinter自制登录界面(含注册)" target="_blank">Python-tkinter自制登录界面(含注册)</a>
                        <span class="text-muted">GCHEK</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>简单的用户登录、注册界面importtkinterastkimporttimeimportsubprocessimportsysimportosimporttkinter.messageboxwindow=tk.Tk()window.title('GCHEK')window.geometry('400x300')#设置储存用户信息的容器,这里用的txt。ifnotos.path.exists('U</div>
                    </li>
                    <li><a href="/article/1892456456029007872.htm"
                           title="Python爬虫requests(详细)" target="_blank">Python爬虫requests(详细)</a>
                        <span class="text-muted">dme.</span>
<a class="tag" taget="_blank" href="/search/Python%E7%88%AC%E8%99%AB%E9%9B%B6%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/1.htm">Python爬虫零基础入门</a><a class="tag" taget="_blank" href="/search/%E7%88%AC%E8%99%AB/1.htm">爬虫</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>本文来学爬虫使用requests模块的常见操作。1.URL参数无论是在发送GET/POST请求时,网址URL都可能会携带参数,例如:http://www.5xclass.cn?age=19&name=dengres=requests.get(url="https://www.5xclass.cn?age=19&name=deng")res=requests.get(url="https://www</div>
                    </li>
                    <li><a href="/article/1892451287539183616.htm"
                           title="CentOS 7 安装以及配置桌面环境" target="_blank">CentOS 7 安装以及配置桌面环境</a>
                        <span class="text-muted">a4132447</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>一、安装GNOME桌面1、安装命令:yumgroupinstall"GNOMEDesktop"-y//CentOS6的安装命令为:yumgroupinstall"XWindowSystem""DesktopPlatform"Desktop2、安装后,重启系统会出来如下界面:按“1”,回车按“2”,回车按"q",回车按“yes”,回车即可进入系统3、进入系统后,需要设置桌面为默认启动,设置命令为:s</div>
                    </li>
                    <li><a href="/article/1892451035201466368.htm"
                           title="亲测centos7安装docker可用" target="_blank">亲测centos7安装docker可用</a>
                        <span class="text-muted">a4132447</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</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><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>1.配置yum下载源为aliyun源yum-config-manager--add-repohttps://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo备份当前的yum源mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backup下载新的Ce</div>
                    </li>
                    <li><a href="/article/1892450782578536448.htm"
                           title="Ubuntu 常用快捷键及操作技巧" target="_blank">Ubuntu 常用快捷键及操作技巧</a>
                        <span class="text-muted">YsDynamic</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><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%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/1.htm">操作系统</a>
                        <div>Ubuntu是一种流行的Linux操作系统,拥有许多强大的功能和快捷键,可以提高工作效率。本文将详细介绍一些常用的Ubuntu快捷键和操作技巧,帮助您更好地利用Ubuntu。终端快捷键Ubuntu的终端是一个强大的工具,可以通过快捷键加快命令行操作。Ctrl+Alt+T:打开一个新的终端窗口。Ctrl+Shift+T:在当前终端窗口中打开一个新的选项卡。Ctrl+Shift+W:关闭当前终端选项卡</div>
                    </li>
                                <li><a href="/article/7.htm"
                                       title="LeetCode[位运算] - #137 Single Number II" target="_blank">LeetCode[位运算] - #137 Single Number II</a>
                                    <span class="text-muted">Cwind</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/LeetCode/1.htm">LeetCode</a><a class="tag" taget="_blank" href="/search/%E9%A2%98%E8%A7%A3/1.htm">题解</a><a class="tag" taget="_blank" href="/search/%E4%BD%8D%E8%BF%90%E7%AE%97/1.htm">位运算</a>
                                    <div>原题链接:#137 Single Number II  
要求: 
给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素 
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间 
  
难度:中等 
  
分析: 
与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一</div>
                                </li>
                                <li><a href="/article/134.htm"
                                       title="《JavaScript语言精粹》笔记" target="_blank">《JavaScript语言精粹》笔记</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a>
                                    <div>0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。 
1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。 
2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是</div>
                                </li>
                                <li><a href="/article/261.htm"
                                       title="你应该更新的Java知识之常用程序库" target="_blank">你应该更新的Java知识之常用程序库</a>
                                    <span class="text-muted">Kai_Ge</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。 
Guava 
Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。 
guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该</div>
                                </li>
                                <li><a href="/article/388.htm"
                                       title="HttpClient" target="_blank">HttpClient</a>
                                    <span class="text-muted">120153216</span>
<a class="tag" taget="_blank" href="/search/httpclient/1.htm">httpclient</a>
                                    <div>/**
 * 可以传对象的请求转发,对象已流形式放入HTTP中
 */
public static Object doPost(Map<String,Object> parmMap,String url)
	{
		Object object = null;
		HttpClient hc = new HttpClient();
		
		String fullURL </div>
                                </li>
                                <li><a href="/article/515.htm"
                                       title="Django model字段类型清单" target="_blank">Django model字段类型清单</a>
                                    <span class="text-muted">2002wmj</span>
<a class="tag" taget="_blank" href="/search/django/1.htm">django</a>
                                    <div>Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段)  BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。  Cha</div>
                                </li>
                                <li><a href="/article/642.htm"
                                       title="在SQLSERVER中查找消耗CPU最多的SQL" target="_blank">在SQLSERVER中查找消耗CPU最多的SQL</a>
                                    <span class="text-muted">357029540</span>
<a class="tag" taget="_blank" href="/search/SQL+Server/1.htm">SQL Server</a>
                                    <div>返回消耗CPU数目最多的10条语句 
 
SELECT TOP 10 
   total_worker_time/execution_count AS avg_cpu_cost, plan_handle, 
   execution_count, 
   (SELECT SUBSTRING(text, statement_start_of</div>
                                </li>
                                <li><a href="/article/769.htm"
                                       title="Myeclipse项目无法部署,Undefined exploded archive location" target="_blank">Myeclipse项目无法部署,Undefined exploded archive location</a>
                                    <span class="text-muted">7454103</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/MyEclipse/1.htm">MyEclipse</a>
                                    <div>做个备忘! 
 
错误信息为: 
      Undefined exploded archive location 
 
 
原因: 
          在工程转移过程中,导致工程的配置文件出错; 
 
 
解决方法: 
   </div>
                                </li>
                                <li><a href="/article/896.htm"
                                       title="GMT时间格式转换" target="_blank">GMT时间格式转换</a>
                                    <span class="text-muted">adminjun</span>
<a class="tag" taget="_blank" href="/search/GMT/1.htm">GMT</a><a class="tag" taget="_blank" href="/search/%E6%97%B6%E9%97%B4%E8%BD%AC%E6%8D%A2/1.htm">时间转换</a>
                                    <div>普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。 
1、可以使用 
SimpleDateFormat SimpleDateFormat    
EEE-三位星期 
d-天 
MMM-月 
yyyy-四位年 
</div>
                                </li>
                                <li><a href="/article/1023.htm"
                                       title="Oracle数据库新装连接串问题" target="_blank">Oracle数据库新装连接串问题</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/oracle%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">oracle数据库</a>
                                    <div>割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下: 
Fatal NI connect error 12170. 
  VERSION INFORMATION:         TNS for Linux: Version 10.2.0.4.0 - Product</div>
                                </li>
                                <li><a href="/article/1150.htm"
                                       title="回顾java数组复制" target="_blank">回顾java数组复制</a>
                                    <span class="text-muted">ayaoxinchao</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a>
                                    <div>在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方</div>
                                </li>
                                <li><a href="/article/1277.htm"
                                       title="java web会话监听并使用spring注入" target="_blank">java web会话监听并使用spring注入</a>
                                    <span class="text-muted">bewithme</span>
<a class="tag" taget="_blank" href="/search/Java+Web/1.htm">Java Web</a>
                                    <div>  
      在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。 
       
import java.util.ArrayList;
import java.ut</div>
                                </li>
                                <li><a href="/article/1404.htm"
                                       title="NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)" target="_blank">NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</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/NoSQL/1.htm">NoSQL</a>
                                    <div>一 .Redis常用命令 
        Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。 
        a.键值相关命令 
        b.服务器相关命令 
1.键值相关命令 
      &</div>
                                </li>
                                <li><a href="/article/1531.htm"
                                       title="java枚举序列化问题" target="_blank">java枚举序列化问题</a>
                                    <span class="text-muted">bingyingao</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%9E%9A%E4%B8%BE/1.htm">枚举</a><a class="tag" taget="_blank" href="/search/%E5%BA%8F%E5%88%97%E5%8C%96/1.htm">序列化</a>
                                    <div>对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题: 
 
 
1.加一个枚举值 
新机器代码读分布式缓存中老对象,没有问题,不会抛异常。 
 
老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。 
 
 
 
  2.删一个枚举值 
新机器代码读分布式缓存中老对象,反序列</div>
                                </li>
                                <li><a href="/article/1658.htm"
                                       title="【Spark七十八】Spark Kyro序列化" target="_blank">【Spark七十八】Spark Kyro序列化</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/spark/1.htm">spark</a>
                                    <div>当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。 
 
 Spark</div>
                                </li>
                                <li><a href="/article/1785.htm"
                                       title="Hybridizing OO and Functional Design" target="_blank">Hybridizing OO and Functional Design</a>
                                    <span class="text-muted">bookjovi</span>
<a class="tag" taget="_blank" href="/search/erlang/1.htm">erlang</a><a class="tag" taget="_blank" href="/search/haskell/1.htm">haskell</a>
                                    <div>  推荐博文:
Tell Above, and Ask Below - Hybridizing OO and Functional Design  
文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,</div>
                                </li>
                                <li><a href="/article/1912.htm"
                                       title="Java-Collections Framework学习与总结-HashMap" target="_blank">Java-Collections Framework学习与总结-HashMap</a>
                                    <span class="text-muted">BrokenDreams</span>
<a class="tag" taget="_blank" href="/search/Collections/1.htm">Collections</a>
                                    <div>        开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。 
 &nb</div>
                                </li>
                                <li><a href="/article/2039.htm"
                                       title="读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility" target="_blank">读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility</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/ 
 
 
 
 




/**
 * 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请
 * bylijinnan
 */
abstract class Handler {
	/* </div>
                                </li>
                                <li><a href="/article/2166.htm"
                                       title="Android中启动外部程序" target="_blank">Android中启动外部程序</a>
                                    <span class="text-muted">cherishLC</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a>
                                    <div>1、启动外部程序 
引用自: 
http://blog.csdn.net/linxcool/article/details/7692374 
 
//方法一
Intent intent=new Intent();
//包名 包名+类名(全路径)
intent.setClassName("com.linxcool", "com.linxcool.PlaneActi</div>
                                </li>
                                <li><a href="/article/2293.htm"
                                       title="summary_keep_rate" target="_blank">summary_keep_rate</a>
                                    <span class="text-muted">coollyj</span>
<a class="tag" taget="_blank" href="/search/SUM/1.htm">SUM</a>
                                    <div>
BEGIN  
      /*DECLARE  minDate varchar(20) ;
      DECLARE  maxDate varchar(20) ;*/
      DECLARE  stkDate varchar(20) ;

      DECLARE done int default -1; 
			/* 游标中 注册服务器地址 */  
      DE</div>
                                </li>
                                <li><a href="/article/2420.htm"
                                       title="hadoop hdfs 添加数据目录出错" target="_blank">hadoop hdfs 添加数据目录出错</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/hdfs/1.htm">hdfs</a><a class="tag" taget="_blank" href="/search/%E6%89%A9%E5%AE%B9/1.htm">扩容</a>
                                    <div>由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误: 
 
2014-11-18 08:51:39,128 WARN org.apache.hadoop.h</div>
                                </li>
                                <li><a href="/article/2547.htm"
                                       title="grep 目录级联查找" target="_blank">grep 目录级联查找</a>
                                    <span class="text-muted">dongwei_6688</span>
<a class="tag" taget="_blank" href="/search/grep/1.htm">grep</a>
                                    <div>       在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数: 
grep -n -r "GET" . 
  
上面的命令将会找出当前目录“.”及当前目录中所有下级目录</div>
                                </li>
                                <li><a href="/article/2674.htm"
                                       title="yii 修改模块使用的布局文件" target="_blank">yii 修改模块使用的布局文件</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a><a class="tag" taget="_blank" href="/search/layouts/1.htm">layouts</a>
                                    <div>方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如:  'theme'=>'mythm',   那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件;   如果未配置主题,那么 yii的模块就使用  protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr</div>
                                </li>
                                <li><a href="/article/2801.htm"
                                       title="设计模式之单例模式" target="_blank">设计模式之单例模式</a>
                                    <span class="text-muted">come_for_dream</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><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/%E6%87%92%E6%B1%89%E5%BC%8F%E9%A5%BF%E6%B1%89%E5%BC%8F/1.htm">懒汉式饿汉式</a><a class="tag" taget="_blank" href="/search/%E5%8F%8C%E9%87%8D%E6%A3%80%E9%AA%8C%E9%94%81%E5%A4%B1%E8%B4%A5/1.htm">双重检验锁失败</a><a class="tag" taget="_blank" href="/search/%E6%97%A0%E5%BA%8F%E5%86%99%E5%85%A5/1.htm">无序写入</a>
                                    <div>                今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。 
  
*********************************</div>
                                </li>
                                <li><a href="/article/2928.htm"
                                       title="8、数组" target="_blank">8、数组</a>
                                    <span class="text-muted">豆豆咖啡</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">二维数组</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E7%BB%84/1.htm">数组</a><a class="tag" taget="_blank" href="/search/%E4%B8%80%E7%BB%B4%E6%95%B0%E7%BB%84/1.htm">一维数组</a>
                                    <div>  
一、概念 
  
    数组是同一种类型数据的集合。其实数组就是一个容器。 
  
二、好处 
  
    可以自动给数组中的元素从0开始编号,方便操作这些元素 
  
三、格式 
  
//一维数组
1,元素类型[] 变量名 = new 元素类型[元素的个数]
int[] arr =</div>
                                </li>
                                <li><a href="/article/3055.htm"
                                       title="Decode Ways" target="_blank">Decode Ways</a>
                                    <span class="text-muted">hcx2013</span>
<a class="tag" taget="_blank" href="/search/decode/1.htm">decode</a>
                                    <div>A message containing letters from A-Z is being encoded to numbers using the following mapping: 
'A' -> 1
'B' -> 2
...
'Z' -> 26
 
Given an encoded message containing digits, det</div>
                                </li>
                                <li><a href="/article/3182.htm"
                                       title="Spring4.1新特性——异步调度和事件机制的异常处理" target="_blank">Spring4.1新特性——异步调度和事件机制的异常处理</a>
                                    <span class="text-muted">jinnianshilongnian</span>
<a class="tag" taget="_blank" href="/search/spring+4.1/1.htm">spring 4.1</a>
                                    <div>目录 
Spring4.1新特性——综述 
Spring4.1新特性——Spring核心部分及其他 
Spring4.1新特性——Spring缓存框架增强 
Spring4.1新特性——异步调用和事件机制的异常处理 
Spring4.1新特性——数据库集成测试脚本初始化 
Spring4.1新特性——Spring MVC增强 
Spring4.1新特性——页面自动化测试框架Spring MVC T</div>
                                </li>
                                <li><a href="/article/3309.htm"
                                       title="squid3(高命中率)缓存服务器配置" target="_blank">squid3(高命中率)缓存服务器配置</a>
                                    <span class="text-muted">liyonghui160com</span>

                                    <div>  
  
系统:centos 5.x 
  需要的软件:squid-3.0.STABLE25.tar.gz 
1.下载squid 
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz 
tar zxf squid-3.0.STABLE25.tar.gz &&</div>
                                </li>
                                <li><a href="/article/3436.htm"
                                       title="避免Java应用中NullPointerException的技巧和最佳实践" target="_blank">避免Java应用中NullPointerException的技巧和最佳实践</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。     总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常 
Object unk</div>
                                </li>
                                <li><a href="/article/3563.htm"
                                       title="如何在Swift语言中创建http请求" target="_blank">如何在Swift语言中创建http请求</a>
                                    <span class="text-muted">shoothao</span>
<a class="tag" taget="_blank" href="/search/http/1.htm">http</a><a class="tag" taget="_blank" href="/search/swift/1.htm">swift</a>
                                    <div>  
 概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。  
   
如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。 
在这里,我将作出一些建议来回答上述问题。常见的</div>
                                </li>
                                <li><a href="/article/3690.htm"
                                       title="Spring事务的传播方式" target="_blank">Spring事务的传播方式</a>
                                    <span class="text-muted">uule</span>
<a class="tag" taget="_blank" href="/search/spring%E4%BA%8B%E5%8A%A1/1.htm">spring事务</a>
                                    <div>传播方式:  
      新建事务 
      required 
      required_new   - 挂起当前 
  
      非事务方式运行 
      supports 
  &nbs</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>