常用Flask的插件bootstrap wtf

flask_bootstrap

  1. 如何在flask中使用Boostrap?
    要想在程序中集成Bootstrap,显然要对模板做所有必要的改动。不过,更简单的方法是使用一个名为Flask-Bootstrap 的Flask 扩展,简化集成的过程。Flask-Bootstrap 使用pip安装:
pip install flask_bootstrap
  1. Flask 扩展一般都在创建程序实例时初始化,下面是Flask_Bootstrap的初始化方法:
from flask_bootstrap import  Bootstrap
app = Flask(__name__)
bootstrap = Bootstrap(app)

初始化Flask-Bootstrap 之后,就可以在程序中使用一个包含所有Bootstrap 文件的基模板。这个模板利用Jinja2 的模板继承机制,让程序扩展一个具有基本页面结构的基模板,其中就有用来引入Bootstrap 的元素。

  1. 如何引用bootatrap的基模板?
{%extends "bootstrap/base.html"%}
{%block title %}Flask{% endblock %}

这两个块分别表示页面中的导航条和主体内容。在这个模板中,navbar 块使用Bootstrap 组件定义了一个简单的导航条。content 块中有个

容器,其中包含一个页面头部。

  1. Flask-Bootstrap定义的其他可用块:
    参考链接: https://pythonhosted.org/Flask-Bootstrap/basic-usage.html#available-blocks
    块名   说明
    doc 整个html文档
    html_attribs html标签属性
    html   html标签中的内容
    head head标签中的内容
    title title标签中的内容
    metas 一组meta标签
    styles 层叠样式表定义
    body_attribs body标签的属性
    body body标签中的内容
    navbar 用户定义的导航条
    content 用户定义的页面内容
    scripts 文档底部的JavaScript 声明
  2. 如何继承原有内容:
      上表中的很多块都是Flask-Bootstrap 自用的,如果直接重定义可能会导致一些问题。例如,Bootstrap 所需的文件在styles 和scripts 块中声明。如果程序需要向已经有内容的块中添加新内容,必须使用Jinja2 提供的super() 函数。例如,如果要在衍生模板中添加新的JavaScript 文件,需要这么定义scripts 块:
{% block scripts %}
{{ super() }}

{% endblock %}

首先了解一下bootstrap提供了多少block,bootstrap中的base.html如下:

{% block doc -%}       ###doc:整个HTML文档(开始)
        
###html_attribs:标签的属性
{%- block html %}     ###html:标签中的内容(开始)
  
    {%- block head %}  ###head:标签中的内容(开始)
    {% block title %}{{title|default}}{% endblock title %} ###title:标签中的内容

    {%- block metas %} ###metas:一组<meta>标签
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    {%- endblock metas %}

    {%- block styles %}   ##styles:层叠样式表定义
    <!-- Bootstrap -->
    <link href="{{bootstrap_find_resource('css/bootstrap.css', cdn='bootstrap')}}" rel="stylesheet">
    {%- endblock styles %}
    {%- endblock head %}     ###head:<head>标签中的内容(结束)
  </head>               ###body_attribs:<body>标签的属性
  <body{% block body_attribs %}{% endblock body_attribs %}>
    {% block body -%}      ###body:<body>标签中的内容(开始)
    {% block navbar %}     ###navbar:用户定义的导航条
    {%- endblock navbar %}
    {% block content -%}    ###content:用户定义的页面内容
    {%- endblock content %}

    {% block scripts %}  ###scripts:文档底部的JavaScript声明
    <script src="{{bootstrap_find_resource('jquery.js', cdn='jquery')}}"></script>
    <script src="{{bootstrap_find_resource('js/bootstrap.js', cdn='bootstrap')}}"></script>
    {%- endblock scripts %}
    {%- endblock body %} ###body:<body>标签中的内容(结束)
  </body>
{%- endblock html %}     ###html:<html>标签中的内容(结束)
</html>
{% endblock doc -%}      ###doc:整个HTML文档(结束)
</code></pre> 
  <h3>flask_wtf</h3> 
  <ol> 
   <li>为什么使用Flask-WTF?<br> request对象公开了所有客户端发送的请求信息。特别是request.form可以访问POST请求提交的表单数据。<br> 尽管Flask的request对象提供的支持足以处理web表单,但依然有许多任务会变得单调且重复。<br> 表单的HTML代码生成和验证提交的表单数据就是两个很好的例子。<br> 优势:<br> Flask-WTF扩展使得处理web表单能获得更愉快的体验。该扩展是一个封装了与框架无关的WTForms包的Flask集成。</li> 
   <li>什么是表单处理?<br> 在网页中,为了和用户进行信息交互总是不得不出现一些表单。<br> flask设计了WTForm表单库来使flask可以更加简便地管理操作表单数据。<br> WTForm中最重要的几个概念如下:<br> 1). Form类,开发者自定义的表单必须继承自Form类或者其子类。<br> Form类最主要的功能是通过其所包含的Field类提供对表单内数据的快捷访问方式。<br>   2). 各种Field类,即字段。一般而言每个Field类都对应一个input的HTML标签。<br> 比如WTForm自带的一些Field类比如BooleanField就对应,<br> SubmitField就对应等等。<br>   3). Validator类。这个类用于验证用户输入的数据的合法性。<br> 比如Length验证器可以用于验证输入数据的长度,<br> FileAllowed验证上传文件的类型等等。</li> 
  </ol> 
  <p>另外,flask为了防范csfr(cross-site request forgery)攻击,<br> 默认在使用flask-wtf之前要求app一定要设置过secret_key。<br> 最简单地可以通过app.config[‘SECRET_KEY’] = 'xxxx’来配置。</p> 
  <ol start="3"> 
   <li>常见的Field类</li> 
  </ol> 
  <p>PasswordField   密码字段,自动将输入转化为小黑点</p> 
  <p>DateField   文本字段,格式要求为datetime.date一样</p> 
  <p>IntergerField   文本字段,格式要求是整数</p> 
  <p>DecimalField   文本字段,格式要求和decimal.Decimal一样</p> 
  <p>FloatField   文本字段,值是浮点数</p> 
  <p>BooleanField   复选框,值为True或者False</p> 
  <p>RadioField   一组单选框</p> 
  <p>SelectField   下拉列表,需要注意一下的是choices参数确定了下拉选项,<br> 但是和HTML中的 标签一样,其是一个tuple组成的列表,<br> 可以认为每个tuple的第一项是选项的真正的值,而第二项是alias。</p> 
  <p>MultipleSelectField  可选多个值的下拉列表</p> 
  <ol start="4"> 
   <li> <p>Validator是验证函数:</p> <p>Validator是验证函数,把一个字段绑定某个验证函数之后,flask会在接收表单中的数据之前对数据做一个验证,<br> 如果验证成功才会接收数据。验证函数Validator如下,具体的validator可能需要的参数不太一样,这里只给出<br> 一些常用的,更多详细的用法可以参见wtforms/validators.py文件的源码,参看每一个validator类需要哪些参数:</p> </li> 
  </ol> 
  <p>*基本上每一个validator都有message参数,指出当输入数据不符合validator要求时显示什么信息。<br>   Email  验证电子邮件地址的合法性,要求正则模式是<sup>.+@([</sup>.@][^@]+)$</p> 
  <p>EqualTo  比较两个字段的值,通常用于输入两次密码等场景,可写参数fieldname,不过注意其是一个字符串变量,指向同表单中的另一个字段的字段名</p> 
  <p>IPAddress  验证IPv4地址,参数默认ipv4=True,ipv6=False。如果想要验证ipv6可以设置这两个参数反过来。</p> 
  <p>Length  验证输入的字符串的长度,可以有min,max两个参数指出要设置的长度下限和上限,注意参数类型是字符串,不是INT!!</p> 
  <p>NumberRange  验证输入数字是否在范围内,可以有min和max两个参数指出数字上限下限,注意参数类型是字符串,不是INT!!然后在这个validator的message参数里可以设置%(min)s和%(max)s两个格式化部分,来告诉前端这个范围到底是多少。其他validator也有这种类似的小技巧,可以参看源码。</p> 
  <p>Optional  无输入值时跳过同字段的其他验证函数</p> 
  <p>Required  必填字段</p> 
  <p>Regexp  用正则表达式验证值,参数regex=‘正则模式’</p> 
  <p>URL  验证URL,要求正则模式是<sup>[a-z]+://(?P<host>[</sup>/:]+)(?P:[0-9]+)?(?P /.*)?$ </p> 
  <p>AnyOf  确保值在可选值列表中。参数是values(一个可选值的列表)。特别提下,和SelectField进行配合使用时,不知道为什么SelectField的choices中项的值不能是数字。。否则AnyOf的values参数中即使有相关数字也无法识别出当前选项是合法选项。我怀疑NoneOf可能也是一样的套路。</p> 
  <p>NoneOf  确保值不在可选值列表中</p> 
  <pre><code> flask-bootstrap(添加css, js样式)---提供了base.html, wtf.html
 flask-wtf(表单处理)-
 表单类型(StringField, PasswordField, SubmitField, FileField)
 验证表单(DataRequired, Length, Email, Regexp, EqualTo)
</code></pre> 
  <p>eg:<br> wtflogin.htm:</p> 
  <pre><code>{% extends 'bootstrap/base.html' %}
{% import 'bootstrap/wtf.html' as wtf %}
{% block content %}
<form method="POST" action="/login/">
    {{ wtf.quick_form(form) }}
    {% if message %}
        <p style="color:red">{{ message }}</p>
    {% endif %}
</form>
{% endblock %}
</code></pre> 
  <p>run.py:</p> 
  <pre><code>import random
from flask import Flask, redirect, render_template, flash
from forms import LoginForm
from flask_bootstrap import  Bootstrap
app = Flask(__name__)
bootstrap = Bootstrap(app)
app.config['SECRET_KEY'] =  random._urandom(24)
@app.route('/success/')
def success():
    return  "success"
@app.route('/login/', methods=('GET', 'POST'))
def submit():
    # 实例化表单对象;
    form = LoginForm()
     # 如果是post方法并且表单验证通过的话, 返回True;
    if form.validate_on_submit():
        return redirect('/success/')
    return render_template('wtflogin.html', form=form)
app.run(port=9001)
</code></pre> 
  <p>forms</p> 
  <pre><code>from flask_wtf import FlaskForm
from flask_wtf.file import FileRequired, FileAllowed
from wtforms import StringField, PasswordField, SubmitField, FileField
from wtforms.validators import DataRequired, Length
class LoginForm(FlaskForm):
    name = StringField(
        label="用户名/邮箱/手机号",
        validators=[
             DataRequired(message="请输入用户名"),
            Length(3, 10, message="长度不符"),
        ]

    )
    passwd = PasswordField(
        label="密码",
        validators=[
             DataRequired(message="输入密码"),
            Length(3, 10,message="长度不符")
        ] )

    file = FileField(
        label="头像",
        validators=[
            FileRequired(),
            FileAllowed(['png', 'jpg'],message='文件非图片')
        ]
    )
    sumbit = SubmitField(
        label="登陆"
    )
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/08aec093a4f84b53af1762ad2adfdfd0.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/08aec093a4f84b53af1762ad2adfdfd0.jpg" alt="常用Flask的插件bootstrap wtf_第1张图片" width="441" height="336" style="border:1px solid black;"></a></p> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1276151475336134656"></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">你可能感兴趣的:(python)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1902378665333813248.htm"
                           title="在 Ansys Mechanical 中创建等效应力结果并使用 Python 导出到文件" target="_blank">在 Ansys Mechanical 中创建等效应力结果并使用 Python 导出到文件</a>
                        <span class="text-muted">David WangYang</span>
<a class="tag" taget="_blank" href="/search/%E7%A1%AC%E4%BB%B6%E5%B7%A5%E7%A8%8B/1.htm">硬件工程</a>
                        <div>介绍在AnsysMechanical模型中,通常需要对许多实体/曲面体或它们组进行后处理等效应力或总变形等。使用分组在TreeGrouping文件夹中的NamedSelections,可以在Mechanical中编写Python脚本来自动生成结果对象。此外,once可以获取新创建的结果对象,并再次使用Mechanical中的Python脚本将所有结果集的结果导出到.csv文件。在本文中,我们将探讨</div>
                    </li>
                    <li><a href="/article/1902371107915231232.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/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a>
                        <div>好久不见,甚是想念本人深知这段时间鸽了一篇博(上一篇博),后续会补上的,今天想写一下关于使用python进行TI雷达接收回波数据处理的一些常见问题和解决方法。这也是前几天领导给我布置的任务,所以我将这段时间自己遇到的并且已经解决的问题进行了简单的汇总,也会推荐几本这几天阅读了python书籍。python书籍推荐:python学习手册MarkLutz著(对应python版本3.X,2.X都可)Py</div>
                    </li>
                    <li><a href="/article/1902367699816738816.htm"
                           title="焊接性能分析代码(Python)" target="_blank">焊接性能分析代码(Python)</a>
                        <span class="text-muted">骑蜗牛上月亮</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>welding_performance_data.xls数据文件。welding_strengthtoughness5001052012480855015490953013510115401447075601690018600121500139111578115importpandasaspdimportmatplotlib.pyplotaspltimporttkinterastkfrommatp</div>
                    </li>
                    <li><a href="/article/1902367700227780608.htm"
                           title="从零实现B站视频下载器:Python自动化实战教程" target="_blank">从零实现B站视频下载器:Python自动化实战教程</a>
                        <span class="text-muted">木觞清</span>
<a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/1.htm">编程语言</a><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>
                        <div>一、项目背景与实现原理1.1B站视频分发机制Bilibili的视频采用音视频分离技术,通过以下方式提升用户体验:动态码率适配(1080P/4K/HDR)分段加载技术(基于M4S格式)内容保护机制(防盗链/签名验证)1.2技术实现路线graphTDA[模拟浏览器请求]-->B[获取加密播放信息]B-->C[解析音视频地址]C-->D[多线程下载]D-->E[FFmpeg合并]二、代码逐层解析2.1请</div>
                    </li>
                    <li><a href="/article/1902364293693763584.htm"
                           title="chatgpt赋能python:Python处理雷达基数据:从入门到实践" target="_blank">chatgpt赋能python:Python处理雷达基数据:从入门到实践</a>
                        <span class="text-muted">lvsetongdao123</span>
<a class="tag" taget="_blank" href="/search/ChatGpt/1.htm">ChatGpt</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/chatgpt/1.htm">chatgpt</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/1.htm">计算机</a>
                        <div>Python处理雷达基数据:从入门到实践随着气象技术的不断发展,雷达探测技术已成为当今天气预报和气象研究的主要手段之一。雷达基数据是气象雷达接收到的未经加工的原始数据,因其包含大量天气信息,不仅在天气预报、天气预警等方面得到了广泛应用,还被广泛地用于气象科研和大气环境研究。本文将介绍如何使用Python处理雷达基数据,解析其中的信息,获取有效的天气数据,以及分析和可视化这些数据。雷达基数据格式与处</div>
                    </li>
                    <li><a href="/article/1902361768223633408.htm"
                           title="PTA天梯赛PYthon7-10 树的遍历" target="_blank">PTA天梯赛PYthon7-10 树的遍历</a>
                        <span class="text-muted">胡同Alley</span>
<a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:723157641234567输出样例:4163572代码长度限制</div>
                    </li>
                    <li><a href="/article/1902358996526886912.htm"
                           title="机器学习之KMeans算法" target="_blank">机器学习之KMeans算法</a>
                        <span class="text-muted">知舟不叙</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/kmeans/1.htm">kmeans</a>
                        <div>文章目录引言1.KMeans算法简介2.KMeans算法的数学原理3.KMeans算法的步骤3.1初始化簇中心3.2分配数据点3.3更新簇中心3.4停止条件4.KMeans算法的优缺点4.1优点4.2缺点5.KMeans算法的应用场景5.1图像分割5.2市场细分5.3文档聚类5.4异常检测6.Python实现KMeans算法7.总结引言KMeans算法是机器学习中最经典的无监督学习算法之一,广泛应</div>
                    </li>
                    <li><a href="/article/1902339840846917632.htm"
                           title="Python自动化运维开发系列—CICD项目" target="_blank">Python自动化运维开发系列—CICD项目</a>
                        <span class="text-muted">weixin_46240874</span>

                        <div>导语都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊、批量执行某个操作啊、写写监控脚本什么的。后来发现工作量大的时候shell开始变慢,实现某个功能使用shell感觉力不从心,听人说python能实现shell能做的一切功能,而且开发效率高,速度快,慢慢的就认识了python,多多少少看点简单的东</div>
                    </li>
                    <li><a href="/article/1902336815713546240.htm"
                           title="每日实战:python爬虫之网页跳转-以某博为例" target="_blank">每日实战:python爬虫之网页跳转-以某博为例</a>
                        <span class="text-muted">代码CC</span>
<a class="tag" taget="_blank" href="/search/python%E7%88%AC%E8%99%AB/1.htm">python爬虫</a><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/pandas/1.htm">pandas</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>一、项目背景与核心需求通过逆向分析微博热榜接口,实现实时热搜数据抓取,重点解决:话题跳转链接参数缺失问题页面数据清洗规范化处理多维度数据采集存储二、网页跳转爬虫实现原理2.1跳转链接生成逻辑原始热搜词→"雷军刚知道柯洁定了SU7Ultra"处理流程:1.添加话题标识→#雷军刚知道柯洁定了SU7Ultra#2.URL编码→%23雷军刚知道柯洁定了SU7Ultra%233.添加搜索参数→&t=31生成</div>
                    </li>
                    <li><a href="/article/1902330384071323648.htm"
                           title="基于 Python 将 PDF 转 Markdown 并拆解为 JSON,支持自定义标题处理" target="_blank">基于 Python 将 PDF 转 Markdown 并拆解为 JSON,支持自定义标题处理</a>
                        <span class="text-muted">drebander</span>
<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/json/1.htm">json</a>
                        <div>在日常工作中,我们经常需要将PDF文件转换为可编辑、可结构化的数据格式,比如Markdown和JSON。但实际操作中,自动化工具往往会出现标题识别不准确的问题,尤其是PDF转换过程中,缺乏明确的标题标识。这篇文章将教你如何使用Python将PDF转换为Markdown,并通过自定义规则精准识别标题,最终将内容按标题结构拆解为JSON,方便后续快速检索与使用。1.实现目标将PDF文件转换为Markd</div>
                    </li>
                    <li><a href="/article/1902330129288327168.htm"
                           title="Python 项目自动化与 CI/CD 实践:让部署和发布像开挂一样简单" target="_blank">Python 项目自动化与 CI/CD 实践:让部署和发布像开挂一样简单</a>
                        <span class="text-muted">全栈探索者chen</span>
<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/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/ci%2Fcd/1.htm">ci/cd</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%A8%8B%E5%BA%8F%E4%BA%BA%E7%94%9F/1.htm">程序人生</a><a class="tag" taget="_blank" href="/search/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96/1.htm">性能优化</a><a class="tag" taget="_blank" href="/search/%E5%8F%AF%E7%94%A8%E6%80%A7%E6%B5%8B%E8%AF%95/1.htm">可用性测试</a>
                        <div>Python项目自动化与CI/CD实践:让部署和发布像开挂一样简单在软件开发的世界里,自动化和持续集成/持续部署(CI/CD)是超级英雄,它们不仅让我们的工作更加高效,还能避免那些令人头疼的手动操作。它们就像开发者的最佳伙伴,随时准备打击bug,拯救开发进度。那么,今天我们就来聊聊怎么在Python项目中玩转自动化和CI/CD,让你从繁琐的手动部署中解脱出来,飞速交付高质量的代码。文章目录什么是C</div>
                    </li>
                    <li><a href="/article/1902318022811512832.htm"
                           title="Python列表与元组的深度剖析" target="_blank">Python列表与元组的深度剖析</a>
                        <span class="text-muted">jijihusong006</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F/1.htm">程序</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>Python列表与元组的深度剖析:从底层实现到应用场景的全方位对比一、核心差异概览Python教程https://pan.quark.cn/s/7cefe3163f45传送代资料库https://link3.cc/aa99特性列表(List)元组(Tuple)可变性可变(Mutable)不可变(Immutable)语法表示方括号[]圆括号()内存占用较大(动态数组结构)较小(静态数组结构)哈希支持</div>
                    </li>
                    <li><a href="/article/1902315874069573632.htm"
                           title="Python 模拟鼠标轨迹算法" target="_blank">Python 模拟鼠标轨迹算法</a>
                        <span class="text-muted">a485240</span>
<a class="tag" taget="_blank" href="/search/%E9%BC%A0%E6%A0%87%E8%BD%A8%E8%BF%B9/1.htm">鼠标轨迹</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%A4%96%E8%AE%BE/1.htm">计算机外设</a>
                        <div>一.鼠标轨迹模拟简介传统的鼠标轨迹模拟依赖于简单的数学模型,如直线或曲线路径。然而,这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现,使得能够通过深度学习技术,学习并模拟更自然的鼠标移动行为。二.鼠标轨迹算法实现AI大模型通过学习大量的人类鼠标操作数据,能够识别和模拟出自然且具有个体差异的鼠标轨迹。以下是实现这一技术的关键步骤:数据收集:收集不同玩家在各种游戏环境中的鼠标操作数据,包括</div>
                    </li>
                    <li><a href="/article/1902315241937629184.htm"
                           title="什么是Apache Avro?" target="_blank">什么是Apache Avro?</a>
                        <span class="text-muted">maozexijr</span>
<a class="tag" taget="_blank" href="/search/apache/1.htm">apache</a>
                        <div>什么是ApacheAvro?ApacheAvro是一个开源的数据序列化框架,主要用于高效的数据交换和存储。它由ApacheHadoop项目开发,广泛应用于大数据生态系统中(如Hadoop、Kafka等)。Avro提供了一种紧凑、快速的二进制数据格式,同时支持丰富的数据结构和模式演化。核心特性跨语言支持Avro支持多种编程语言(如Java、Python、C++、Go等),使得不同语言之间的数据交换变</div>
                    </li>
                    <li><a href="/article/1902313224347381760.htm"
                           title="计算机毕业设计之基于Hadoop的热点新闻分析系统的设计与实现" target="_blank">计算机毕业设计之基于Hadoop的热点新闻分析系统的设计与实现</a>
                        <span class="text-muted">微信bishe69</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/django/1.htm">django</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                        <div>近些年来,随着科技的飞速发展,互联网的普及逐渐延伸到各行各业中,给人们生活带来了十分的便利,热点新闻分析系统利用计算机网络实现信息化管理,使整个热点新闻分析的发展和服务水平有显著提升。本文拟采用PyCharm开发工具,django框架、Python语言、Hadoop大数据处理技术进行开发,后台使用MySQL数据库进行信息管理,设计开发的热点新闻分析系统。通过调研和分析,系统拥有管理员和用户两个模块</div>
                    </li>
                    <li><a href="/article/1902311710534987776.htm"
                           title="Python常用的库讲解(易懂版)" target="_blank">Python常用的库讲解(易懂版)</a>
                        <span class="text-muted">不辉放弃</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>NumPy:用于科学计算的基础库,提供多维数组对象、各种派生对象和对数组执行操作的工具。importnumpyasnp#创建一个numpy数组arr=np.array([1,2,3,4,5])print(arr)Pandas:数据处理库,提供数据结构和数据分析工具,特别适合处理结构化数据。importpandasaspd#创建一个Pandas数据帧df=pd.DataFrame({'A':[1,2</div>
                    </li>
                    <li><a href="/article/1902307297523200000.htm"
                           title="Python零基础通关教程(二):列表、字典与函数详解(附生活化案例)" target="_blank">Python零基础通关教程(二):列表、字典与函数详解(附生活化案例)</a>
                        <span class="text-muted">中意可口可乐</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a><a class="tag" taget="_blank" href="/search/python%E5%88%97%E8%A1%A8/1.htm">python列表</a>
                        <div>一、前情回顾与学习路线第一篇重点复习:✅变量与数据类型✅条件判断✅循环结构本篇新知识地图:graphLRA[基础语法]-->B[列表]A-->C[字典]B-->D[函数进阶]C-->D二、列表(List):你的数据收纳盒1.列表是什么?现实比喻:像超市购物车,可以随时添加/取出商品代码定义:用方括号[]包裹,元素用逗号分隔#创建购物车列表cart=["苹果","牛奶","面包"]print("购物</div>
                    </li>
                    <li><a href="/article/1902307297053437952.htm"
                           title="ERROR: No matching distribution found for tf-estimator-nightly==2.8.0.dev2021122109" target="_blank">ERROR: No matching distribution found for tf-estimator-nightly==2.8.0.dev2021122109</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>ERROR:Ignoredthefollowingversionsthatrequireadifferentpythonversion:1.14.0Requires-Python>=3.10;1.14.0rc1Requires-Python>=3.10;1.14.0rc2Requires-Python>=3.10ERROR:Couldnotfindaversionthatsatisfiesther</div>
                    </li>
                    <li><a href="/article/1902297085538004992.htm"
                           title="PyArmor:一个超级厉害的 Python 库!" target="_blank">PyArmor:一个超级厉害的 Python 库!</a>
                        <span class="text-muted">一只蜗牛儿</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>在Python的世界里,如何保护我们的代码不被轻易盗用或者破解,一直是开发者们关注的问题。尤其是在发布软件时,如何有效防止源代码泄漏或者被逆向工程分析,成为了一个重要课题。PyArmor作为一款强大的Python加密工具,能够帮助开发者对Python源代码进行加密保护,防止非法复制和破解。本文将全面介绍PyArmor,并通过代码示例展示如何使用它对Python脚本进行加密、打包和保护。1.PyAr</div>
                    </li>
                    <li><a href="/article/1902294944190623744.htm"
                           title="使用AI python实现将前端angularjs工程转换成vue工程案例" target="_blank">使用AI python实现将前端angularjs工程转换成vue工程案例</a>
                        <span class="text-muted">银行金融科技</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/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/python/1.htm">python</a>
                        <div>以下是一个结合Python和AI技术实现AngularJS到Vue工程迁移的完整案例,包含关键转换策略和代码实现:案例背景目标:将使用AngularJS1.x的电商后台管理系统转换为Vue3工程,主要转换以下部分:模板语法控制器逻辑服务依赖路由配置状态管理原始AngularJS代码片段:javascript//app.jsangular.module('app',['ui.router']).co</div>
                    </li>
                    <li><a href="/article/1902289651872362496.htm"
                           title="python反爬虫处理--处理验证码(Tesseract 库)的安装与使用" target="_blank">python反爬虫处理--处理验证码(Tesseract 库)的安装与使用</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>
                        <div>处理验证码是反爬虫策略中常见的挑战之一。在Python中,可以采用多种方法来解决这一问题,具体取决于验证码的类型(如文本、图像或滑块验证等)。以下是一些常用的解决方案:对于简单的文字或数字验证码:如果网站使用的是相对简单的验证码形式,您可以尝试使用OCR(OpticalCharacterRecognition,光学字符识别)技术来自动识别这些验证码。Python中有一个叫做Tesseract的库,</div>
                    </li>
                    <li><a href="/article/1902289650798620672.htm"
                           title="python爬虫 Selenium库安装与使用" target="_blank">python爬虫 Selenium库安装与使用</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/selenium/1.htm">selenium</a>
                        <div>Selenium是一个强大的自动化测试工具,它也可以用来进行网页抓取。与传统的请求库(如requests)不同,Selenium可以模拟真实用户的行为,比如点击按钮、填写表单等,这对于那些依赖于JavaScript动态加载内容的网站来说非常有用。安装Selenium首先确保你的环境中已经安装了Python和pip。然后通过pip安装Selenium:pipinstallselenium如果你使用的</div>
                    </li>
                    <li><a href="/article/1902289651431960576.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>
                        <div>项目名称:国家自然科学基金大数据知识管理服务门户爬取项目爬取内容:爬取内容:资助项目爬取链接:HTTP://KD.NSFC.GOV.CN/BASEQUERY/SUPPORTQUERY为了完成“国家自然科学基金大数据知识管理服务门户”的资助项目信息爬取任务,我们需要设计一个网络爬虫。考虑到目标网站的具体情况,我们将采用Python语言结合requests库来处理HTTP请求,以及使用Beautifu</div>
                    </li>
                    <li><a href="/article/1902281067419725824.htm"
                           title="python 游戏开发cocos2d库安装与使用" target="_blank">python 游戏开发cocos2d库安装与使用</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/cocos2d/1.htm">cocos2d</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>Cocos2d-x是一个广泛使用的开源游戏开发框架,支持多种编程语言,包括Python。对于Python开发者来说,通常使用的是Cocos2d-py或者更现代的Cocos2d-x的Python绑定版本。这里我将指导你如何安装和开始使用Cocos2d-py。安装步骤安装Python:确保你的系统上已经安装了Python3.x版本。你可以从Python官方网站下载最新版的Python。安装pip:pi</div>
                    </li>
                    <li><a href="/article/1902277792280670208.htm"
                           title="第十天-字符串:编程世界的文本基石" target="_blank">第十天-字符串:编程世界的文本基石</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/java/1.htm">java</a>
                        <div>在编程的广阔领域中,字符串是极为重要的数据类型,它就像一座桥梁,连接着人类的自然语言和计算机能够理解与处理的数字信息。下面,让我们深入探索字符串的世界。一、字符串简介字符串是由零个或多个字符组成的有序序列,它在程序中用于表示文本信息。在Python语言环境下,创建字符串简洁直观,例如:str="HelloWorld"。这里,str作为字符串变量名,就如同给一个装着文本内容的盒子贴上了标签;Hell</div>
                    </li>
                    <li><a href="/article/1902276656836440064.htm"
                           title="使用LoRA微调LLaMA3" target="_blank">使用LoRA微调LLaMA3</a>
                        <span class="text-muted">想胖的壮壮</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/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>使用LoRA微调LLaMA3的案例案例概述在这个案例中,我们将使用LoRA微调LLaMA3模型,进行一个文本分类任务。我们将使用HuggingFace的Transformers库来完成这个过程。步骤一:环境搭建安装必要的Python包pipinstalltransformersdatasetstorch配置GPU环境确保你的环境中配置了CUDA和cuDNN,并验证GPU是否可用。importtor</div>
                    </li>
                    <li><a href="/article/1902276024712884224.htm"
                           title="【python】可变、不可变数据类型" target="_blank">【python】可变、不可变数据类型</a>
                        <span class="text-muted">qianx77</span>
<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/numpy/1.htm">numpy</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可变、不可变数据类型一、什么是可变和不可变的数据类型?二、不可变类型1.数字2.字符3.元组三、可变类型4.列表需要注意的点5.集合5.字典6.补充-深拷贝和浅拷贝总结python可变、不可变数据类型用于记录python数据类型python我个人常用的数据就是数字、字符串、元组、列表、集合、字典,分为可变类型和不可变类型。一、什么是可变和不可变的数据类型?可变就是说在相同内存地</div>
                    </li>
                    <li><a href="/article/1902275017043931136.htm"
                           title="python orm框架sqlalchemy_Python的ORM框架SQLAlchemy入门教程" target="_blank">python orm框架sqlalchemy_Python的ORM框架SQLAlchemy入门教程</a>
                        <span class="text-muted">weixin_39758041</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/orm%E6%A1%86%E6%9E%B6sqlalchemy/1.htm">orm框架sqlalchemy</a>
                        <div>SQLAlchemy的核心理念是,SQL数据库查询的数量级和特性关键于目标结合;而目标结合的抽象性又关键于表和行。一安裝SQLAlchemy编码以下:pipinstallsqlalchemy导进要是没有出错则安裝取得成功编码以下:importsqlalchemysqlalchemy.__version__‘0.9.1’二应用sqlalchemy对数据库操作1.界定元信息内容,关联到模块编码以下:(</div>
                    </li>
                    <li><a href="/article/1902274890677940224.htm"
                           title="python gridfs_【已解决】用Python去连接本地mongoDB去用GridFS保存文件" target="_blank">python gridfs_【已解决】用Python去连接本地mongoDB去用GridFS保存文件</a>
                        <span class="text-muted">weixin_39622225</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/gridfs/1.htm">gridfs</a>
                        <div>折腾:期间,命令行方式的mongofiles去putgetdeletedelete_id等,已经基本上搞清楚了。接着就是去用Python代码,通过driver:的方式,调用API,去保存数据了。pythonmongodbgridfs需要先安装:pymongo就是这些API了。通过:发现,对于此处:➜英语资源mongod--versiondbversionv3.6.3gitversion:9586e</div>
                    </li>
                    <li><a href="/article/1902273754122219520.htm"
                           title="Python 中的特殊注释及字符存储机制" target="_blank">Python 中的特殊注释及字符存储机制</a>
                        <span class="text-muted">svtvtvt</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a>
                        <div>目录一、Python特殊注释及其作用1.'#!/usr/bin/python'(Shebang2.'#-*-coding:utf-8-*-'(字符编码声明)3.其他特殊注释二、Python中字符的存储机制1.计算机的最小存储单元2.常见字符编码方案3.Python中字符的存储三、中文乱码的原因及解决方法1.源文件的编码与Python的编码不一致2.编码与解码不一致3.终端或控制台编码问题4.操作系</div>
                    </li>
                                <li><a href="/article/79.htm"
                                       title="基本数据类型和引用类型的初始值" target="_blank">基本数据类型和引用类型的初始值</a>
                                    <span class="text-muted">3213213333332132</span>
<a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a>
                                    <div>package com.array;

/**
 * @Description 测试初始值
 * @author FuJianyong
 * 2015-1-22上午10:31:53
 */
public class ArrayTest {
    
	ArrayTest at;
	String str;
	byte bt;
	short s;
	int i;
	long</div>
                                </li>
                                <li><a href="/article/206.htm"
                                       title="摘抄笔记--《编写高质量代码:改善Java程序的151个建议》" target="_blank">摘抄笔记--《编写高质量代码:改善Java程序的151个建议》</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/%E9%AB%98%E8%B4%A8%E9%87%8F%E4%BB%A3%E7%A0%81/1.htm">高质量代码</a>
                                    <div>        记得3年前刚到公司,同桌同事见我无事可做就借我看《编写高质量代码:改善Java程序的151个建议》这本书,当时看了几页没上心就没研究了。到上个月在公司偶然看到,于是乎又找来看看,我的天,真是非常多的干货,对于我这种静不下心的人真是帮助莫大呀。 
  
        看完整本书,也记了不少笔记</div>
                                </li>
                                <li><a href="/article/333.htm"
                                       title="【备忘】Django 常用命令及最佳实践" target="_blank">【备忘】Django 常用命令及最佳实践</a>
                                    <span class="text-muted">dongwei_6688</span>
<a class="tag" taget="_blank" href="/search/django/1.htm">django</a>
                                    <div>注意:本文基于 Django 1.8.2 版本 
  
生成数据库迁移脚本(python 脚本) 
python manage.py makemigrations polls 
 说明:polls 是你的应用名字,运行该命令时需要根据你的应用名字进行调整 
  
查看该次迁移需要执行的 SQL 语句(只查看语句,并不应用到数据库上): 
python manage.p</div>
                                </li>
                                <li><a href="/article/460.htm"
                                       title="阶乘算法之一N! 末尾有多少个零" target="_blank">阶乘算法之一N! 末尾有多少个零</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a><a class="tag" taget="_blank" href="/search/%E9%98%B6%E4%B9%98/1.htm">阶乘</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%95%88%E7%8E%87/1.htm">效率</a>
                                    <div>                                 &n</div>
                                </li>
                                <li><a href="/article/587.htm"
                                       title="spring注入servlet" target="_blank">spring注入servlet</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/Spring%E6%B3%A8%E5%85%A5/1.htm">Spring注入</a>
                                    <div>传统的配置方法是无法将bean或属性直接注入到servlet中的,配置代理servlet亦比较麻烦,这里其实有比较简单的方法,其实就是在servlet的init()方法中加入要注入的内容: 
ServletContext application = getServletContext();
WebApplicationContext wac = WebApplicationContextUtil</div>
                                </li>
                                <li><a href="/article/714.htm"
                                       title="Jenkins 命令行操作说明文档" target="_blank">Jenkins 命令行操作说明文档</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div> 
假设Jenkins的URL为http://22.11.140.38:9080/jenkins/ 
 
 
 
基本的格式为 
 
java 
 
基本的格式为 
 
java -jar jenkins-cli.jar [-s JENKINS_URL] command [options][args] 
 
 
 
 
下面具体介绍各个命令的作用及基本使用方法 
 
 
 
1. &nb</div>
                                </li>
                                <li><a href="/article/841.htm"
                                       title="UnicodeBlock检测中文用法" target="_blank">UnicodeBlock检测中文用法</a>
                                    <span class="text-muted">布衣凌宇</span>
<a class="tag" taget="_blank" href="/search/UnicodeBlock/1.htm">UnicodeBlock</a>
                                    <div>/**  * 判断输入的是汉字  */ public static boolean isChinese(char c) {        Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);    </div>
                                </li>
                                <li><a href="/article/968.htm"
                                       title="java下实现调用oracle的存储过程和函数" target="_blank">java下实现调用oracle的存储过程和函数</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/orale/1.htm">orale</a>
                                    <div>  1.创建表:STOCK_PRICES 
   
  2.插入测试数据: 
   
  3.建立一个返回游标:  
PKG_PUB_UTILS 
   4.创建和存储过程:P_GET_PRICE 
  
   5.创建函数: 
   6.JAVA调用存储过程返回结果集 
JDBCoracle10G_INVO</div>
                                </li>
                                <li><a href="/article/1095.htm"
                                       title="Velocity Toolbox" target="_blank">Velocity Toolbox</a>
                                    <span class="text-muted">antlove</span>
<a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%9D%BF/1.htm">模板</a><a class="tag" taget="_blank" href="/search/tool/1.htm">tool</a><a class="tag" taget="_blank" href="/search/box/1.htm">box</a><a class="tag" taget="_blank" href="/search/velocity/1.htm">velocity</a>
                                    <div>velocity.VelocityUtil 
package velocity;

import org.apache.velocity.Template;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.c</div>
                                </li>
                                <li><a href="/article/1222.htm"
                                       title="JAVA正则表达式匹配基础" target="_blank">JAVA正则表达式匹配基础</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E7%9A%84%E5%8C%B9%E9%85%8D/1.htm">正则表达式的匹配</a>
                                    <div>  
正则表达式;提高程序的性能,简化代码,提高代码的可读性,简化对字符串的操作 
  
正则表达式的用途; 
字符串的匹配

字符串的分割

字符串的查找

字符串的替换
 
  
  
  
正则表达式的验证语法 
    
  [a]    //[]表示这个字符只出现一次  ,[a] 表示a只出现一</div>
                                </li>
                                <li><a href="/article/1349.htm"
                                       title="是否使用EL表达式的配置" target="_blank">是否使用EL表达式的配置</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a><a class="tag" taget="_blank" href="/search/web.xml/1.htm">web.xml</a><a class="tag" taget="_blank" href="/search/EL/1.htm">EL</a><a class="tag" taget="_blank" href="/search/EasyTemplate/1.htm">EasyTemplate</a>
                                    <div>        今天在开发过程中发现一个细节问题,由于前端采用EasyTemplate模板方法实现数据展示,但老是不能正常显示出来。后来发现竟是EL将我的EasyTemplate的${...}解释执行了,导致我的模板不能正常展示后台数据。 
        网</div>
                                </li>
                                <li><a href="/article/1476.htm"
                                       title="精通Oracle10编程SQL(1-3)PLSQL基础" target="_blank">精通Oracle10编程SQL(1-3)PLSQL基础</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</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/plsql/1.htm">plsql</a>
                                    <div>--只包含执行部分的PL/SQL块
--set serveroutput off
begin
  dbms_output.put_line('Hello,everyone!');
end;


select * from emp;

--包含定义部分和执行部分的PL/SQL块
declare
   v_ename varchar2(5);
begin
   select </div>
                                </li>
                                <li><a href="/article/1603.htm"
                                       title="【Nginx三】Nginx作为反向代理服务器" target="_blank">【Nginx三】Nginx作为反向代理服务器</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                                    <div>Nginx一个常用的功能是作为代理服务器。代理服务器通常完成如下的功能: 
  
 
 接受客户端请求 
 将请求转发给被代理的服务器 
 从被代理的服务器获得响应结果 
 把响应结果返回给客户端 
 实例 
本文把Nginx配置成一个简单的代理服务器 
 
 对于静态的html和图片,直接从Nginx获取 
 对于动态的页面,例如JSP或者Servlet,Nginx则将请求转发给Res</div>
                                </li>
                                <li><a href="/article/1730.htm"
                                       title="Plugin execution not covered by lifecycle configuration: org.apache.maven.plugin" target="_blank">Plugin execution not covered by lifecycle configuration: org.apache.maven.plugin</a>
                                    <span class="text-muted">blackproof</span>
<a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a><a class="tag" taget="_blank" href="/search/%E6%8A%A5%E9%94%99/1.htm">报错</a>
                                    <div>转:http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-by-lifecycle-configuration-for-sprin 
  
maven报错: 
Plugin execution not covered by lifecycle configuration: </div>
                                </li>
                                <li><a href="/article/1857.htm"
                                       title="发布docker程序到marathon" target="_blank">发布docker程序到marathon</a>
                                    <span class="text-muted">ronin47</span>
<a class="tag" taget="_blank" href="/search/docker+%E5%8F%91%E5%B8%83%E5%BA%94%E7%94%A8/1.htm">docker 发布应用</a>
                                    <div>1 发布docker程序到marathon 1.1 搭建私有docker registry 1.1.1 安装docker regisry 
docker pull docker-registry
docker run -t -p 5000:5000 docker-registry
 下载docker镜像并发布到私有registry 
docker pull consol/tomcat-8.0
</div>
                                </li>
                                <li><a href="/article/1984.htm"
                                       title="java-57-用两个栈实现队列&&用两个队列实现一个栈" target="_blank">java-57-用两个栈实现队列&&用两个队列实现一个栈</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

	/*
	 * Q 57 用两个栈实现队列
	 */

public class QueueImplementByTwoStacks {

	private Stack<Integer> stack1;
	pr</div>
                                </li>
                                <li><a href="/article/2111.htm"
                                       title="Nginx配置性能优化" target="_blank">Nginx配置性能优化</a>
                                    <span class="text-muted">cfyme</span>
<a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a>
                                    <div>转载地址:http://blog.csdn.net/xifeijian/article/details/20956605 
  
大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了。然而,如果你真的想挤压出Nginx的性能,你必</div>
                                </li>
                                <li><a href="/article/2238.htm"
                                       title="[JAVA图形图像]JAVA体系需要稳扎稳打,逐步推进图像图形处理技术" target="_blank">[JAVA图形图像]JAVA体系需要稳扎稳打,逐步推进图像图形处理技术</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div> 
 
     对图形图像进行精确处理,需要大量的数学工具,即使是从底层硬件模拟层开始设计,也离不开大量的数学工具包,因为我认为,JAVA语言体系在图形图像处理模块上面的研发工作,需要从开发一些基础的,类似实时数学函数构造器和解析器的软件包入手,而不是急于利用第三方代码工具来实现一个不严格的图形图像处理软件...... 
 
  &nb</div>
                                </li>
                                <li><a href="/article/2365.htm"
                                       title="MonkeyRunner的使用" target="_blank">MonkeyRunner的使用</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/MonkeyRunner/1.htm">MonkeyRunner</a>
                                    <div>要使用MonkeyRunner,就要学习使用Python,哎 
 
先抄一段官方doc里的代码 
作用是启动一个程序(应该是启动程序默认的Activity),然后按MENU键,并截屏 
 

# Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRun</div>
                                </li>
                                <li><a href="/article/2492.htm"
                                       title="Hadoop-- 海量文件的分布式计算处理方案" target="_blank">Hadoop-- 海量文件的分布式计算处理方案</a>
                                    <span class="text-muted">datamachine</span>
<a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%A1%E7%AE%97/1.htm">分布式计算</a>
                                    <div>csdn的一个关于hadoop的分布式处理方案,存档。 
原帖:http://blog.csdn.net/calvinxiu/article/details/1506112。 
 
    Hadoop 是Google MapReduce的一个Java实现。MapReduce是一种简化的分布式编程模式,让程序自动分布到一个由普通机器组成的超大集群上并发执行。就如同ja</div>
                                </li>
                                <li><a href="/article/2619.htm"
                                       title="以資料庫驗證登入" target="_blank">以資料庫驗證登入</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a>
                                    <div>以資料庫驗證登入 
由於 Yii 內定的原始框架程式, 採用綁定在UserIdentity.php 的 demo 與 admin 帳號密碼:    public function authenticate()    {        $users=array( &nbs</div>
                                </li>
                                <li><a href="/article/2746.htm"
                                       title="github做webhooks:[2]php版本自动触发更新" target="_blank">github做webhooks:[2]php版本自动触发更新</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/github/1.htm">github</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/webhooks/1.htm">webhooks</a>
                                    <div>上次已经说过了如何在github控制面板做查看url的返回信息了。这次就到了直接贴钩子代码的时候了。       
工具/原料  
 
   git   
   github   
     
方法/步骤  
 
       在github的setting里面的webhooks里把我们的url地址填进去。   
       钩子更新的代码如下: error_reportin</div>
                                </li>
                                <li><a href="/article/2873.htm"
                                       title="Eos开发常用表达式" target="_blank">Eos开发常用表达式</a>
                                    <span class="text-muted">蕃薯耀</span>
<a class="tag" taget="_blank" href="/search/Eos%E5%BC%80%E5%8F%91/1.htm">Eos开发</a><a class="tag" taget="_blank" href="/search/Eos%E5%85%A5%E9%97%A8/1.htm">Eos入门</a><a class="tag" taget="_blank" href="/search/Eos%E5%BC%80%E5%8F%91%E5%B8%B8%E7%94%A8%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">Eos开发常用表达式</a>
                                    <div>Eos开发常用表达式 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
蕃薯耀 2014年8月18日 15:03:35 星期一 
  
  
&</div>
                                </li>
                                <li><a href="/article/3000.htm"
                                       title="SpringSecurity3.X--SpEL 表达式" target="_blank">SpringSecurity3.X--SpEL 表达式</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a>
                                    <div>使用 Spring 表达式语言配置访问控制,要实现这一功能的直接方式是在<http>配置元素上添加 use-expressions 属性: 
  
<http auto-config="true"  use-expressions="true"> 
这样就会在投票器中自动增加一个投票器:org.springframework</div>
                                </li>
                                <li><a href="/article/3127.htm"
                                       title="Redis vs Memcache" target="_blank">Redis vs Memcache</a>
                                    <span class="text-muted">IXHONG</span>
<a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。 
2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。 
3. Redis支持数据的备份,即master-slave模式的数据备份。 
4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 
Red</div>
                                </li>
                                <li><a href="/article/3254.htm"
                                       title="Python - 装饰器使用过程中的误区解读" target="_blank">Python - 装饰器使用过程中的误区解读</a>
                                    <span class="text-muted">kvhur</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a>
                                    <div>大家都知道装饰器是一个很著名的设计模式,经常被用于AOP(面向切面编程)的场景,较为经典的有插入日志,性能测试,事务处理,Web权限校验, Cache等。 
原文链接:http://www.gbtags.com/gb/share/5563.htm 
Python语言本身提供了装饰器语法(@),典型的装饰器实现如下:     
 
 @function_wrapper 
  de</div>
                                </li>
                                <li><a href="/article/3381.htm"
                                       title="架构师之mybatis-----update 带case when 针对多种情况更新" target="_blank">架构师之mybatis-----update 带case when 针对多种情况更新</a>
                                    <span class="text-muted">nannan408</span>
<a class="tag" taget="_blank" href="/search/case+when/1.htm">case when</a>
                                    <div>1.前言. 
   如题. 
2. 代码. 
  

	<update id="batchUpdate" parameterType="java.util.List">
			<foreach collection="list" item="list" index=&</div>
                                </li>
                                <li><a href="/article/3508.htm"
                                       title="Algorithm算法视频教程" target="_blank">Algorithm算法视频教程</a>
                                    <span class="text-muted">栏目记者</span>
<a class="tag" taget="_blank" href="/search/Algorithm/1.htm">Algorithm</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>课程:Algorithm算法视频教程 
 
百度网盘下载地址: http://pan.baidu.com/s/1qWFjjQW 密码: 2mji 
 
 
程序写的好不好,还得看算法屌不屌!Algorithm算法博大精深。 
 一、课程内容: 
课时1、算法的基本概念 + Sequential search 
课时2、Binary search 
课时3、Hash table 
课时4、Algor</div>
                                </li>
                                <li><a href="/article/3635.htm"
                                       title="C语言算法之冒泡排序" target="_blank">C语言算法之冒泡排序</a>
                                    <span class="text-muted">qiufeihu</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>任意输入10个数字由小到大进行排序。 
代码: 
#include <stdio.h>
int main()
{
	int i,j,t,a[11];        /*定义变量及数组为基本类型*/
	for(i = 1;i < 11;i++){
		scanf("%d",&a[i]);     /*从键盘中输入10个数*/
	}
	for</div>
                                </li>
                                <li><a href="/article/3762.htm"
                                       title="JSP异常处理" target="_blank">JSP异常处理</a>
                                    <span class="text-muted">wyzuomumu</span>
<a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a>
                                    <div>1.在可能发生异常的网页中通过指令将HTTP请求转发给另一个专门处理异常的网页中: 
<%@ page errorPage="errors.jsp"%> 
  
2.在处理异常的网页中做如下声明: 
errors.jsp: 
<%@ page isErrorPage="true"%>,这样设置完后就可以在网页中直接访问exc</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>