python--Flask框架

Flask框架

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。
Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

为了理解 Flask 框架是如何抽象出Web开发中的共同部分,我们先来看看Web应用程序的一般流程。对于Web应用来说,当客户端想要获取 动态资源 时,就会发起一个HTTP请求(比如用浏览器访问一个 URL),Web应用程序会在后台进行相应的业务处理,(从数据库或者进行一些计算操作等)取出用户需要的数据,生成相应的HTTP响应(当然,如果访问静态资源,则直接返回资源即可,不需要进行业务处理)。
python--Flask框架_第1张图片
实际应用中, 不同的请求可能会调用相同的处理逻辑 。这里有着相同业务处理逻辑的 HTTP 请求可以用一类 URL 来标识。比如论坛站点中,对于所有的获取Topic内容的请求而言,可以用 topic// 这类URL来表示,这里的 topic_id 用以区分不同的topic。接着在后台定义一个 get_topic(topic_id) 的函数,用来获取topic相应的数据,此外还需要建立URL和函数之间的一一对应关系。这就是Web开发中所谓的 路由分发
python--Flask框架_第2张图片
通过业务逻辑函数拿到数据后,接下来需要根据这些数据生成HTTP响应(对于Web应用来说,HTTP响应一般是一个HTML文件)。Web开发中的一般做法是提供一个HTML模板文件,然后将数据传入模板,经过渲染后得到最终需要的HTML响应文件。

一种比较常见的场景是, 请求虽然不同,但响应中数据的展示方式是相同的 。仍以论坛为例,对不同topic而言,其具体topic content虽然不同,但页面展示的方式是一样的,都有标题拦,内容栏等。也就是说,对于 topic 来说,我们只需提供一个HTML模板,然后传入不同topic数据,即得到不同的HTTP响应。这就是所谓的 模板渲染
python--Flask框架_第3张图片
参考资料:https://www.open-open.com/lib/view/open1477879623923.html

Flask

# 1. 导入Flask类
from flask import Flask
app = Flask(__name__)

# 实现主页
@app.route('/')
def index():
    return  "这是网站的主页"

# 基本路由   /login/---访问路径
# 视图函数   告诉app当用户访问/login/这个路径时, 执行login函数的内容, 最终将return的内容返回给客户端;
@app.route('/login/')
def login():
    return  '

login......

' if __name__ == '__main__': # 运行Flask应用 # 127.0.0.1----回环地址IP, 每台主机都有====localhost # 如何设置, 使得服务奇特主机的浏览器可以访问? '0.0.0.0'开放所有的IP, 使得可以访问 # 如何修改端口? # 可能会报错:Address already in use app.run(host='0.0.0.0', port=8080)

python--Flask框架_第4张图片
python--Flask框架_第5张图片

路由与变量规则

访问的网址如下:
# http://www.douban.org/123457677/comments/
# http://www.douban.org/123457673/comments/
# http://www.douban.org/123457674/comments/
# http://www.douban.org/123457675/comments/

动态路由:
http://www.douban.org/<>/comments/
“”"

# request叫做请求上下文
from flask import  Flask, request
app = Flask(__name__)

# 常用动态路由的规则:
#     1). url路由的一部分可以标记为变量, <变量名>;
#     2):. flask中路由变量可以指定的类型: int, string, float, uuid
@app.route("//comments/")
def comments(id):
    return "这是一个%s评论页面" %(id)


# 字符串
@app.route("/welcome//")
def welcome(username):
    return  "

欢迎用户%s登陆网站

" %(username) # ***************** # 重点request: # Flask 从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。 # 请求对象就是一个很好的例子,它封装了客户端发送的 HTTP 请求。即request; # 解决问题: # 特殊的URL地址: http://www.baidu.com/query?id=123&name=westos # http://127.0.0.1:5000/login2/?username=westos&password=westos @app.route('/query') def query(): # 获取客户端的用户代理; user_agent = request.user_agent # 获取客户端的IP地址; req_addr = request.remote_addr # 获取用户请求url地址里面key值对应的value值; id = request.args.get('id') name = request.args.get('name') # 查看客户端的HTTP请求方式; reqMethod = request.method # 将字符串信息返回给客户端浏览器/其他, 默认以html方式显示, 如果需要换行, 加html的标签
; return """ 请求的用户代理: %s
请求的客户端Ip: %s
请求的id号: %s
用户名: %s
请求方式: %s """ %(user_agent, req_addr, id, name, reqMethod) if __name__ == '__main__': app.run()

python--Flask框架_第6张图片
python--Flask框架_第7张图片
python--Flask框架_第8张图片

登录验证之http请求方法GET实现案例

HTTP请求的方法:
GET:
1). 获取页面信息;
2). 可以提交数据信息;但是数据不安全;
http://127.0.0.1:5000/login2/?username=westos&password=westos
POST:
提交服务端需要的请求信息;有利于数据的安全性;

from flask import Flask, render_template, request, redirect

app = Flask(__name__)
@app.route('/')
def index():
    return  "

主页

" @app.route('/login/') def login(): # 一般情况, 不会直接把html文件内容直接返回; # 而是将html文件保存到当前的templates目录中; # 1). 通过render_template方法调用; # 2). 默认情况下,Flask 在程序文件夹中的 templates 子文件夹中寻找模板。 return render_template('login.html') @app.route('/login2/') def login2(): # 获取用户输入的用户名 username = request.args.get('username', None) password = request.args.get('password', None) # 逻辑处理, 用来判断用户和密码是否正确; if username == 'root' and password == 'redhat': # 重定向到指定路由; return redirect('/') # return "登录成功" else: return "登录失败" if __name__ == '__main__': app.run()

python--Flask框架_第9张图片
python--Flask框架_第10张图片
python--Flask框架_第11张图片
python--Flask框架_第12张图片

登录验证之http请求方法POST实现案例

自定义错误页面:

1). 为什么要自定义错误页面?
如果你在浏览器的地址栏中输入了不可用的路由,那么会显示一个状态码为 404 的错误页
面。现在这个错误页面太简陋、平庸.

2). 如何自定义错误页面?
像常规路由一样,Flask 允许程序使用基于模板的自定义错误页面。
最常见的错误代码有两个:
- 404,客户端请求未知页面或路由时显示;
- 500,有未处理的异常时显示。

from flask import  Flask, request, render_template, redirect
app = Flask(__name__)


@app.route('/')
def index():
    return  "这是主页"


# 默认路由只支持get方法, 如何指定接受post方法?
@app.route('/login/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        # 难点: post请求提交的数据如何获取?
        print(request.form)
        username = request.form.get('username', None)

        password = request.form.get('password', None)
        # 如果用户名和密码正确, 跳转到主页;
        if username == 'root' and password == 'redhat':
            return  redirect('/')
        # 如果登录不正确, 则警告红色信息;还是在登录页面;
        else:
            # 可以给html传递变量
            return  render_template('login_post.html',
                                    errMessages="用户名或者密码错误"
                                    )
    else:
        return  render_template('login_post.html')


@app.errorhandler(404)
def page_not_found(e):
    return  render_template("404.html"), 404

@app.errorhandler(500)
def internal_server_error(e):
    return  render_template("500.html"), 500
if __name__ == '__main__':
    app.run()

python--Flask框架_第13张图片

!python--Flask框架_第14张图片在这里插入图片描述
python--Flask框架_第15张图片
python--Flask框架_第16张图片

模板引擎

1.什么是Jinja2模板引擎?

1). python的Web开发中, 业务逻辑(实质就是视图函数的内容)和页面逻辑(html
文件)分开的, 使得代码的可读性增强, 代码容易理解和维护;

2). 模板渲染: 在html文件中,通过动态赋值 ,
将重新翻译好的html文件(模板引擎生效) 返回给用户的过程。

3). 其他的模板引擎: Mako, Template, Jinja2

2.语法

1). Jinja2变量显示语法: {{ 变量名 }}
完整的过滤器查看位置: http://jinja.pocoo.org/docs/templates/#builtin-filters
Jinja2变量内置过滤器:
safe 渲染值时不转义
capitalize 把值的首字母转换成大写,其他字母转换成小写
lower 把值转换成小写形式
upper 把值转换成大写形式
title 把值中每个单词的首字母都转换成大写
trim 把值的首尾空格去掉
striptags 渲染之前把值中所有的 HTML 标签都删掉

如何自定义过滤器?

2). for循环:
{% for i in li%}

{% endfor %}

3). if语句

   {% if user == 'westos'%}


    {% elif user == 'hello' %}

    {% else %}

    {% endif%}

4). 宏的操作====相当于函数

  • 如何定义宏?
{%  macro render(id) %}

hello world {{ id }}

{% endmacro %}

如何调用宏?

{{ render(1) }}
{{ render(2) }}
{{ render(3) }}

5). include包含操作
如何使用:

{% include  "06_inclued.html"%}

6). 模板的继承: 一般网站的导航栏和底部不会变化, 为了避免重复编写导航栏信息;

  • 如何定义模板?

     
     
         
         {% block title %}  {% endblock %}
     
     
     
    这是导航栏
    {% block body %} hello {% endblock %}
    这是底部

如何继承基模板?

{% extends  '06_base.html'%}

{% block title %}
    继承案例
{% endblock %}


{% block body %}
这是最新填的block内容

{% endblock %}

“”"

from flask import  Flask, render_template
app = Flask(__name__)

class User(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return  "" %(self.name)

@app.route('/')
def index():
    message = " this is a Message "
    li = ['fentiao', 'fensi', 'fendai']
    info = {
        'name': 'fentiao',
        'age':10
    }
    fentiao = User(name="粉条", age=5)
    tags = "

hello world

" return render_template('06_index.html', message=message, names = li, info=info, fentiao=fentiao, tags = tags ) @app.route('/users/') def users(): usersinfo = [('user%s' %(i), "password%s" %(i)) for i in range(100)] return render_template('06_users.html', usersinfo = usersinfo ) @app.route("/macro/") def macro(): return render_template('06_macro.html') @app.route('/extends/') def extends(): return render_template('06_use_block.html') # **********************自定义过滤器****************************** # 定义一个函数 def format_data(s): return "这是一个过滤器:" + s # 将该函数添加到默认过滤器中; app.add_template_filter(format_data, 'fmt') if __name__ == '__main__': app.run()

![在这里插入图片描述](https://img-blog.csdnimg.cn/2019022710511291.png?x-oss-process=image/watermarkpython from _curses import flash,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjA2MTEy,size_16,color_FFFFFF,t_70)

python--Flask框架_第17张图片
python--Flask框架_第18张图片

python--Flask框架_第19张图片

python--Flask框架_第20张图片
python--Flask框架_第21张图片
python--Flask框架_第22张图片
python--Flask框架_第23张图片
python--Flask框架_第24张图片
python--Flask框架_第25张图片

flask项目静态文件的导入

两种方法: 任选一种

   - 
    - 

flask链接的导入

两种方法:

   - 注册
    - 登录
    # 根据视图函数动态的去查找路径;
    - 删除  === /delete/root/

消息闪现

1. 如何实现闪现?

1). flash消息这种功能,是Flask的核心特性。用于在下一个响应中显示一个消息,让用户知道状态发生了变化。
可以使确认消息,警告或者错误提醒。

flash("闪现的消息")


2). 工作原理:
    闪现系统使得在一个请求结束的时候记录一个信息,然后在且仅仅在下一个请求中访问这个数据。

2. html代码中如何调用闪现内容?

仅调用flash()函数并不能把消息显示出来,程序使用的模板要渲染这些消息。
Flask把get_flashed_messages()函数开放给模板,用来获取并渲染消息


{#让每个页面都可以获取闪现信息闪现#}
{% for item in get_flashed_messages() %}

    
{% endfor %}

Flask中集成Bootstarp

1. 什么是Bootstrap?

Bootstrap(http://getbootstrap.com/)是 Twitter 开发的一个开源框架,
它提供的用户界面组件可用于创建整洁且具有吸引力的网页,而且这些网页还能兼容
所有现代 Web 浏览器。

2. Flask中如何集成Bootstrap?

使用 pip 安装Flask-Bootstrap 的 Flask 扩展,简化集成的过程。
from flask.ext.bootstrap import Bootstrap
bootstrap = Bootstrap(app)

3. Flask-Bootstrap实现了什么?

 利用 Jinja2 的模板继承机制,让程序扩展一个具有基本页面结构的基模板,其中
就有用来引入 Bootstrap 的元素。
{ % extends "bootstrap/base_other.html" % }

- 基模板中定义了可在衍生模板中重定义的块。
        块名                    说 明
        doc                     整个 HTML 文档
        html_attribs             标签的属性
        html              标签中的内容
        head              标签中的内容
        title            标签中的内容
        metas                   一组 <meta> 标签
        styles                  层叠样式表定义
        body_attribs            <body> 标签的属性
        body                    <body> 标签中的内容
        navbar                  用户定义的导航条
        content                 用户定义的页面内容
        scripts                 文档底部的 JavaScript 声明


- 程序需要向已经有内容的块中添加新内容,必须使用 Jinja2 提供的 super() 函数。

{% block scripts %}
{{ super() }}
<script type="text/javascript" src="my-script.js"></script>
{% endblock %}
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1188143774107279360"></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--Flask框架)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1901152420063408128.htm"
                           title="【手把手教你-Python】如何让 Flask 根据现有表结构生成 SQLAlchemy 模型文件?" target="_blank">【手把手教你-Python】如何让 Flask 根据现有表结构生成 SQLAlchemy 模型文件?</a>
                        <span class="text-muted">EricLing2022</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</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/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/database/1.htm">database</a>
                        <div>首先你要具备一定Python基础,了解Flask框架,以及数据库工具SQLAchemy。为什么会有这个需求?在使用Python编写项目代码时,假设数据库中的表已经存在,我们需要根据现有的表结构来编写SQLAlchemy模型文件。为了避免逐行编写代码,我们可以使用一个工具来“一键生成”模型文件,那就是sqlacodegen。准备工作Python版本:3.11.5(只要是3.xx版本应该都可以)安装好</div>
                    </li>
                    <li><a href="/article/1901151160488751104.htm"
                           title="Flask 框架app = Flask(__name__) 解析" target="_blank">Flask 框架app = Flask(__name__) 解析</a>
                        <span class="text-muted">Nolannk</span>
<a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a>
                        <div>fromflaskimportFlaskapp=Flask(name)@app.route(‘/’)defhello_world():return‘HelloWorld!’ifname==‘main‘:app.run(host=’0.0.0.0’,port=9000)第4行,引入Flask类,Flask类实现了一个WSGI应用第5行,app是Flask的实例,它接收包或者模块的名字作为参数,但一般</div>
                    </li>
                    <li><a href="/article/1901145988727369728.htm"
                           title="MyBatis 从入门到精通:详解基础与实战(完整版)" target="_blank">MyBatis 从入门到精通:详解基础与实战(完整版)</a>
                        <span class="text-muted">以恒1</span>
<a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a>
                        <div>MyBatis从入门到精通:详解基础与实战(完整版)(新手入门篇在主页)一、MyBatis基础概念1.1什么是ORM?ORM(Object-RelationalMapping)即对象关系映射,是一种将数据库表与程序对象自动映射的技术。MyBatis作为半自动化的ORM框架,允许开发者直接编写SQL,同时自动处理对象与数据库结果的映射。1.2MyBatis核心功能SQL映射:将Java方法与SQL语</div>
                    </li>
                    <li><a href="/article/1901143090018709504.htm"
                           title="C++使用ZeroMQ和MessagePack实现简单又轻量级的RPC框架" target="_blank">C++使用ZeroMQ和MessagePack实现简单又轻量级的RPC框架</a>
                        <span class="text-muted">特立独行的猫a</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a><a class="tag" taget="_blank" href="/search/zeromq/1.htm">zeromq</a><a class="tag" taget="_blank" href="/search/messagepack/1.htm">messagepack</a>
                        <div>在现代的分布式系统中,远程过程调用(RPC)是一个非常重要的机制,它允许不同的服务或组件之间的通信,就像调用本地函数一样。本文将介绍如何使用ZeroMQ和MessagePack来构建一个轻量级的RPC框架,并提供一个简单的使用示例。ZeroMQ简介ZeroMQ(也称为0MQ)是一个高性能的异步消息库,旨在使用标准的、对等的传输协议实现消息的发送与接收。ZeroMQ的核心是提供一个消息队列,使得消息</div>
                    </li>
                    <li><a href="/article/1901138800390762496.htm"
                           title="使用Python和LangChain创建可调用工具的智能对话机器人:全面指南" target="_blank">使用Python和LangChain创建可调用工具的智能对话机器人:全面指南</a>
                        <span class="text-muted">m0_57781768</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/langchain/1.htm">langchain</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E4%BA%BA/1.htm">机器人</a>
                        <div>使用Python和LangChain创建可调用工具的智能对话机器人:全面指南在当今技术迅猛发展的时代,人工智能(AI)和自然语言处理(NLP)技术的应用范围越来越广。尤其是对话机器人,它们不仅能与人类进行自然交互,还能通过调用外部API与各种系统对接,为用户提供更加智能和灵活的服务。本文将通过一系列实例和代码演示,向您展示如何利用Python编程语言和LangChain框架,创建能够使用外部工具(</div>
                    </li>
                    <li><a href="/article/1901138044812062720.htm"
                           title="如何快速创建Fastapi项目" target="_blank">如何快速创建Fastapi项目</a>
                        <span class="text-muted">黄小耶@</span>
<a class="tag" taget="_blank" href="/search/fastapi/1.htm">fastapi</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>一、环境安装安装第三方库来搭建项目依赖pipinstallfastapi#fastapi框架pipinstalltortoise-orm[accel]#数据库的ormpipinstalluvicorn#web服务器pipinstallpyjwt#权限认证pipinstallaerich#数据库迁移pipinstallaiomysql#Mysql数据库驱动二、项目结构构建大型的项目结构,文件结构如下</div>
                    </li>
                    <li><a href="/article/1901137288746823680.htm"
                           title="C/C++框架和库推荐" target="_blank">C/C++框架和库推荐</a>
                        <span class="text-muted">大王算法</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B%E5%85%A5%E9%97%A8%E5%8F%8A%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98%E5%AE%9D%E5%85%B8/1.htm">C++入门及项目实战宝典</a><a class="tag" taget="_blank" href="/search/C%2FC%2B%2B%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98365/1.htm">C/C++开发实战365</a><a class="tag" taget="_blank" href="/search/C%2B%2B/1.htm">C++</a>
                        <div>值得学习的C语言开源项目-1.WebbenchWebbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写,代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/web</div>
                    </li>
                    <li><a href="/article/1901129349109706752.htm"
                           title="订单管理系统 大学生数据库大作业/数据库实践MYSQL" target="_blank">订单管理系统 大学生数据库大作业/数据库实践MYSQL</a>
                        <span class="text-muted">陌路物是人非</span>
<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/%E8%AF%BE%E7%A8%8B%E8%AE%BE%E8%AE%A1/1.htm">课程设计</a>
                        <div>订单管理系统从入门到入土下载Maven,Nodejs创建一个数据库sql_end,创建四个数据库表,并确保用户名为root用户密码为123456再IDEA中加载Springboot依赖(可以直接新建一个任意名称的文件夹,项目导入spring的框架),启动spring项目打开index.html输入用户名和密码,点击注册,再点击登录点击个人中心,点击修改用户信息,修改自己的余额点击逛店铺,选择一个商</div>
                    </li>
                    <li><a href="/article/1901124678076919808.htm"
                           title="【电商项目】-设置跨域配置实现前后端分离" target="_blank">【电商项目】-设置跨域配置实现前后端分离</a>
                        <span class="text-muted">总是幸福的老豌豆</span>
<a class="tag" taget="_blank" href="/search/%E6%97%A5%E5%B8%B8%E5%B7%A5%E4%BD%9C%E6%80%BB%E7%BB%93/1.htm">日常工作总结</a><a class="tag" taget="_blank" href="/search/%E8%A7%A3%E5%86%B3%E8%B7%A8%E5%9F%9F%E8%AF%B7%E6%B1%82/1.htm">解决跨域请求</a>
                        <div>前言最近在开发前后端分离的电商项目,前端框架是VUE,后端是我们熟悉的springboot框架,做过前后端分离项目的同学,‍肯定晓得我们项目会存在跨域请求的问题,下面贴出项目中的配置类,来解决跨域请求问题:packagecom.zcw.config;importorg.springframework.context.annotation.Bean;importorg.springframework</div>
                    </li>
                    <li><a href="/article/1901124425437212672.htm"
                           title="机器视觉|手势识别:基于YOLOv5的手部检测与MediaPipe的关键点估计" target="_blank">机器视觉|手势识别:基于YOLOv5的手部检测与MediaPipe的关键点估计</a>
                        <span class="text-muted">RockLiu@805</span>
<a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E8%A7%86%E8%A7%89/1.htm">机器视觉</a><a class="tag" taget="_blank" href="/search/YOLO/1.htm">YOLO</a>
                        <div>手势识别:基于YOLOv5的手部检测与MediaPipe的关键点估计在实时计算机视觉应用中,手部检测与关键点估计是实现手势识别的重要基础。本文将介绍一种基于深度学习的手势识别技术方案,通过结合YOLOv5物体检测网络和MediaPipe关键点检测框架,实现实时的手部定位与关键点提取。技术背景gesturerecognition作为计算机视觉领域的重要研究方向,在HCI(人机交互)、遥控行为分析、虚</div>
                    </li>
                    <li><a href="/article/1901124173170798592.htm"
                           title="带大家vue + springboot/springcloud +minio(可选) 实现文件分片上传和断点续传介绍,问题,原理及 前后端完整源码 (模式2:后台集群部署模式)" target="_blank">带大家vue + springboot/springcloud +minio(可选) 实现文件分片上传和断点续传介绍,问题,原理及 前后端完整源码 (模式2:后台集群部署模式)</a>
                        <span class="text-muted">峡谷电光马仔</span>
<a class="tag" taget="_blank" href="/search/minio%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0/1.htm">minio分片上传</a><a class="tag" taget="_blank" href="/search/springboot%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0/1.htm">springboot分片上传</a><a class="tag" taget="_blank" href="/search/springboot%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0/1.htm">springboot断点续传</a><a class="tag" taget="_blank" href="/search/springcloud%E6%96%AD%E7%82%B9%E7%BB%AD%E4%BC%A0/1.htm">springcloud断点续传</a><a class="tag" taget="_blank" href="/search/springcloud%E5%88%86%E7%89%87%E4%B8%8A%E4%BC%A0/1.htm">springcloud分片上传</a>
                        <div>回顾与介绍本文承接上文《vue+springboot/springcloud+minio(可选)实现文件分片上传和断点续传介绍,问题,原理及前后端完整源码(模式1:后台单点部署模式)》本篇主要针对后台是集群模式下部署时的分片上传方案本篇基于minio的部分可以参考,入不需要文件最后上传到文件服务器,则可忽略minio部分《从0到1手把手搭建springcloudalibaba微服务大型应用框架(九</div>
                    </li>
                    <li><a href="/article/1901123417302691840.htm"
                           title="SpringCloudAlibaba:从0搭建一套快速开发框架-05 公共模块(common)编写与优化:提升开发效率实践" target="_blank">SpringCloudAlibaba:从0搭建一套快速开发框架-05 公共模块(common)编写与优化:提升开发效率实践</a>
                        <span class="text-muted">辉辉.</span>
<a class="tag" taget="_blank" href="/search/SpringCloud/1.htm">SpringCloud</a><a class="tag" taget="_blank" href="/search/2022/1.htm">2022</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/cloud/1.htm">cloud</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a>
                        <div>序言:上篇主要介绍了OpenFeign的集成使用,本篇主要优化完善公共模块。公共模块介绍本片主要针对于我个人创建的公共模块(shine-common)展开。shine-common模块的总体功能可以概括为提供系统中的基础通用功能和工具,旨在为其他模块和服务提供一些重复使用的逻辑、工具方法以及规范化的处理方式。具体功能如下:基础常量与配置支持提供项目中需要的常量定义和全局配置项。这样可以避免硬编码常</div>
                    </li>
                    <li><a href="/article/1901119126164795392.htm"
                           title="Java:DDD领域驱动设计深度解析(全览)" target="_blank">Java:DDD领域驱动设计深度解析(全览)</a>
                        <span class="text-muted">以恒1</span>
<a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>Java:DDD领域驱动设计深度解析(全览)在软件开发的世界里,我们总在寻找那把打开业务之门的钥匙。有人迷恋MVC的简洁,有人追逐微服务的潮流,而DDD(领域驱动设计)则像一位沉默的智者,提醒着我们:软件不是代码的堆砌,而是对现实世界的映射。DDD:不仅仅是框架,更是一种思维方式!在传统软件开发中,技术实现与业务需求之间始终存在着难以逾越的鸿沟。当业务专家说"我们需要优化客户旅程",开发团队听到的</div>
                    </li>
                    <li><a href="/article/1901115978180259840.htm"
                           title="TRAE与Cursor最佳实践指南(截至2025年3月)" target="_blank">TRAE与Cursor最佳实践指南(截至2025年3月)</a>
                        <span class="text-muted">xinxiyinhe</span>
<a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</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><a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</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>一、核心能力适配策略TRAE的Builder模式开发流程需求拆解:将复杂需求分解为可执行子任务(如先搭建项目框架,再分模块实现功能),通过多轮对话逐步生成代码。多模态输入:上传设计草图或错误截图,结合自然语言描述需求,提升代码生成精准度(例如电商页面开发可直接上传原型图)。版本控制:利用“历史会话回溯”功能快速回退到指定版本,避免代码修改失控。Cursor的高效协作模式插件生态整合:复用VSCod</div>
                    </li>
                    <li><a href="/article/1901115977685331968.htm"
                           title="TRAE与Cursor AI编程工具综合对比(截至2025年3月)" target="_blank">TRAE与Cursor AI编程工具综合对比(截至2025年3月)</a>
                        <span class="text-muted">xinxiyinhe</span>
<a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</a><a class="tag" taget="_blank" href="/search/AI%E7%BC%96%E7%A8%8B/1.htm">AI编程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>一、核心定位与差异化Trae(字节跳动)本土化优先:专为中文开发者设计,提供全中文界面、中文代码注释及语义优化,例如可直接用中文描述需求(如“实现带登录功能的网页”)生成完整代码框架。免费策略:完全免费,集成Claude3.5和GPT-4o双模型,支持私有化部署及企业级数据隔离。开发环境:构建完整的AI原生IDE,注重项目全流程管理,支持从需求到部署的端到端开发。Cursor(Anysphere)</div>
                    </li>
                    <li><a href="/article/1901111185533628416.htm"
                           title="基于 Golang 的微服务开发实践:使用 Gin 和 GORM 构建 RESTful API" target="_blank">基于 Golang 的微服务开发实践:使用 Gin 和 GORM 构建 RESTful API</a>
                        <span class="text-muted">全栈探索者chen</span>
<a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E5%88%86%E4%BA%AB/1.htm">知识分享</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/gin/1.htm">gin</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a>
                        <div>基于Golang的微服务开发实践:使用Gin和GORM构建RESTfulAPI前言在微服务架构时代,高性能、易扩展和维护的API服务成为构建企业级系统的关键。Golang(Go)以其高效的执行速度、内置并发模型和优秀的性能表现,正逐渐成为后端微服务开发的热门选择。本文将详细介绍如何使用Gin框架与GORMORM构建一个RESTfulAPI微服务。我们将从项目初始化、数据模型设计、路由与控制器开发,</div>
                    </li>
                    <li><a href="/article/1901105389223604224.htm"
                           title="Python 在人工智能领域的实际6大案例" target="_blank">Python 在人工智能领域的实际6大案例</a>
                        <span class="text-muted">Solomon_肖哥弹架构</span>
<a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/1.htm">机器学习</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                        <div>Python作为一种功能强大且易于学习的编程语言,在人工智能(AI)领域得到了广泛的应用。从机器学习到深度学习,从自然语言处理到计算机视觉,Python提供了丰富的库和框架,使得开发者能够快速实现各种AI应用。本文将通过多个实际案例,展示Python在人工智能领域的强大功能和应用前景。二、案例一:手写数字识别(MNIST)1.背景介绍手写数字识别是机器学习领域的经典入门项目,MNIST数据集包含了</div>
                    </li>
                    <li><a href="/article/1901089881774419968.htm"
                           title="Python的那些事第四十五篇:继承自Nose的测试框架Nose2" target="_blank">Python的那些事第四十五篇:继承自Nose的测试框架Nose2</a>
                        <span class="text-muted">暮雨哀尘</span>
<a class="tag" taget="_blank" href="/search/Python%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/1.htm">Python的那些事</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/bootstrap/1.htm">bootstrap</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                        <div>Nose2:继承自Nose的测试框架摘要本文深入探讨了Nose2这一继承自Nose的测试框架。在软件开发过程中,测试是确保代码质量和稳定性的重要环节,而测试框架为测试工作的开展提供了有力支持。Nose2作为Nose的继承者,在保留Nose优势的基础上进行了诸多改进和扩展,为Python测试领域带来了新的活力和可能性。本文将从Nose2的基本特性、优势、应用场景、代码实例等方面进行详细阐述,通过与N</div>
                    </li>
                    <li><a href="/article/1901083458407559168.htm"
                           title="在web开发中使用spring框架(基础)" target="_blank">在web开发中使用spring框架(基础)</a>
                        <span class="text-muted">可问 可问春风</span>
<a class="tag" taget="_blank" href="/search/JAVAEE/1.htm">JAVAEE</a><a class="tag" taget="_blank" href="/search/javaee/1.htm">javaee</a>
                        <div>在web开发中使用spring框架按照之前学习,编写在servlet中使用spring新建day02项目,导入spring核心开发jar包业务层packagecom.qst.service;publicclassHelloService{publicvoidsayHello(){System.out.println("我是一个快乐的Spring!");}}表现层(Web层)从spring工厂获取对</div>
                    </li>
                    <li><a href="/article/1901070088597991424.htm"
                           title="Dubbo请求调用本地服务" target="_blank">Dubbo请求调用本地服务</a>
                        <span class="text-muted">Lorin 洛林</span>
<a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E7%BB%8F%E5%85%B8%E9%9D%A2%E8%AF%95%E9%A2%98/1.htm">后端经典面试题</a><a class="tag" taget="_blank" href="/search/dubbo/1.htm">dubbo</a>
                        <div>文章目录前言配置Dubbo本地调用方法一:application.yml中配置方法二:@DubboReference注解中指定注意个人简介前言在微服务架构中,ApacheDubbo作为一款高性能、轻量级的RPC框架,被广泛应用于分布式系统。通常,Dubbo服务是跨进程调用的,但在开发和测试过程中,有时需要在本地调用Dubbo服务,以方便调试和验证。配置Dubbo本地调用默认情况下,Dubbo通过注</div>
                    </li>
                    <li><a href="/article/1901062906758361088.htm"
                           title="Express.js 是一个轻量级、灵活且功能强大的 Node.js Web 应用框架" target="_blank">Express.js 是一个轻量级、灵活且功能强大的 Node.js Web 应用框架</a>
                        <span class="text-muted">getapi</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/express/1.htm">express</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a>
                        <div>Express.js是一个轻量级、灵活且功能强大的Node.jsWeb应用框架,广泛用于构建Web应用程序和API。它以其简洁的语法和模块化设计而闻名,非常适合快速开发后端服务。以下是关于Express.js的详细介绍以及如何高效使用它的指南。1.Express.js的核心特点Express.js提供了一系列强大的功能,使其成为全栈开发中的首选后端框架之一:(1)路由管理支持定义URL路径与处理函</div>
                    </li>
                    <li><a href="/article/1901057488455790592.htm"
                           title="php后端分页_thinkphp5框架前后端分离项目实现分页功能的方法分析" target="_blank">php后端分页_thinkphp5框架前后端分离项目实现分页功能的方法分析</a>
                        <span class="text-muted">淡定男</span>
<a class="tag" taget="_blank" href="/search/php%E5%90%8E%E7%AB%AF%E5%88%86%E9%A1%B5/1.htm">php后端分页</a>
                        <div>本文实例讲述了thinkphp5框架前后端分离项目实现分页功能的方法。分享给大家供大家参考,具体如下:方法一利用tp5提供的paginate方法实现自动分页参数page第几页,paginate分页方法会自动获取size每页数量代码/***Notes:消费记录*Date:2019/6/25*Time:15:43*@paramRequest$request*@return\think\response</div>
                    </li>
                    <li><a href="/article/1901057235732197376.htm"
                           title="python flask 分页_Python的Flask框架中实现分页功能的教程" target="_blank">python flask 分页_Python的Flask框架中实现分页功能的教程</a>
                        <span class="text-muted">weixin_39959126</span>
<a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a>
                        <div>BlogPosts的提交让我们从简单的开始。首页上必须有一张用户提交新的post的表单。首先我们定义一个单域表单对象(fileapp/forms.py):classPostForm(Form):post=TextField('post',validators=[Required()])下面,我们把这个表单添加到template中(fileapp/templates/index.html):{%ex</div>
                    </li>
                    <li><a href="/article/1901053454541975552.htm"
                           title="Vue2快速入门" target="_blank">Vue2快速入门</a>
                        <span class="text-muted">Vic2334</span>
<a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/vue.js/1.htm">vue.js</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/vue/1.htm">vue</a><a class="tag" taget="_blank" href="/search/%E5%BF%AB%E9%80%9F%E5%85%A5%E9%97%A8/1.htm">快速入门</a>
                        <div>1.概念理解什么是vue?Vue.js是一套构建用户界面的渐进式框架。Vue从设计角度来讲,虽然能够涵盖这张图上所有的东西,但是你并不需要一上手就把所有东西全用上,因为没有必要。无论从学习角度,还是实际情况,这都是可选的。声明式渲染和组件系统是Vue的核心库所包含内容,而客户端路由、状态管理、构建工具都有专门解决方案。这些解决方案相互独立,你可以在核心的基础上任意选用其他的部件,不一定要全部整合在</div>
                    </li>
                    <li><a href="/article/1901053076605825024.htm"
                           title="Spring Data JPA" target="_blank">Spring Data JPA</a>
                        <span class="text-muted">Vic2334</span>
<a class="tag" taget="_blank" href="/search/JAVA/1.htm">JAVA</a><a class="tag" taget="_blank" href="/search/Spring/1.htm">Spring</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a>
                        <div>SpringDataJPA什么是JPA?相同处:1.都跟数据库操作有关,JPA是jdbc的升华,升级版。2.JDBC和JPA都是一组规范1接口。3.都是由SUN公司推出的不同处:1.JDBC是有各个关系型数据库实现的,JPA是有ORM框架实现。2.JDBC使用SQL语句和数据库通信,JPA用面向对象方式,通过ORM框架生成SQL,进行操作。3.JPA在JDBC之上,JPA也要依赖JDBC才能操作数</div>
                    </li>
                    <li><a href="/article/1901052950038507520.htm"
                           title="FastDVDnet:基于深度学习的视频去噪框架" target="_blank">FastDVDnet:基于深度学习的视频去噪框架</a>
                        <span class="text-muted">陆可鹃Joey</span>

                        <div>FastDVDnet:基于深度学习的视频去噪框架项目地址:https://gitcode.com/gh_mirrors/fa/fastdvdnet项目介绍FastDVDnet是一个高效、开源的深度学习模型,专注于视频去噪。该项目由MatteoTassano开发并维护,旨在提供一种快速且有效的解决方案,以消除视频中的噪声,同时保持图像细节和自然纹理。它利用了时间域的连续性和深层神经网络的力量,确保在</div>
                    </li>
                    <li><a href="/article/1901052697243611136.htm"
                           title="基于 KTransformers的DeepSeek-R1 本地部署方案,成本骤降32倍!" target="_blank">基于 KTransformers的DeepSeek-R1 本地部署方案,成本骤降32倍!</a>
                        <span class="text-muted">爱科技Ai</span>
<a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a>
                        <div>随着DeepSeek-R1模型在全球范围内的流行,越来越多的用户开始在本地尝试部署该模型。然而,高昂的硬件需求和成本让许多公司望而却步。本文将深入探讨DeepSeek-R1部署中的挑战,并介绍一款创新框架KTransformers,它能够显著降低大规模模型部署的成本并提高推理效率,从而帮助更多中小企业有效部署此类高级AI模型。本地部署“成本骤降32倍”,助力R1真正落地「中小企业」中!1.Deep</div>
                    </li>
                    <li><a href="/article/1901040343449661440.htm"
                           title="开源框架--Glide源码阅读下" target="_blank">开源框架--Glide源码阅读下</a>
                        <span class="text-muted">Bonnie_cat</span>
<a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90/1.htm">开源</a><a class="tag" taget="_blank" href="/search/glide/1.htm">glide</a>
                        <div>接上半部分开源框架–Glide源码阅读上,我们接着看Glide源码的with和load。3.源码阅读3.2load上半部分分析知道了with()方法返回的是RequestManager,下面看RequestManager的load()方法,@OverridepublicRequestBuilderload(@NullableStringstring){returnasDrawable().load</div>
                    </li>
                    <li><a href="/article/1901029126064631808.htm"
                           title="【Gee】项目总结:模仿 GIN 实现简单的 Golang Web 框架" target="_blank">【Gee】项目总结:模仿 GIN 实现简单的 Golang Web 框架</a>
                        <span class="text-muted">YGGP</span>
<a class="tag" taget="_blank" href="/search/Golang/1.htm">Golang</a><a class="tag" taget="_blank" href="/search/Project/1.htm">Project</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a>
                        <div>文章目录Gee项目回顾Gee项目总结Golang已经具备基础的web功能,为什么还需要web框架?作为web框架,Gee框架完成了哪些功能?如何用Gee来构建web项目?Gee项目回顾上个月月末我按照Geektutu的教程,实现了Gee这个基于Golang的简单Web框架,但是一直没有进行复盘总结。学习Gee的八篇文章的链接如下:【Gee】7天用Go从零实现Web框架Gee【Gee】Day1:HT</div>
                    </li>
                    <li><a href="/article/1901023956945661952.htm"
                           title="Tornado 初识" target="_blank">Tornado 初识</a>
                        <span class="text-muted">Wu_Candy</span>
<a class="tag" taget="_blank" href="/search/Web%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">Web服务器</a>
                        <div>一、什么是tornadoTornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,但却在创建和编写时有着足够的轻量级,并能够被用在大量的应用和工具中。二、tornado有什么优势Tornado和现在的主流baiduWeb服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快,得利于其非阻塞的方式和对epol</div>
                    </li>
                                <li><a href="/article/22.htm"
                                       title="redis学习笔记——不仅仅是存取数据" target="_blank">redis学习笔记——不仅仅是存取数据</a>
                                    <span class="text-muted">Everyday都不同</span>
<a class="tag" taget="_blank" href="/search/returnSource/1.htm">returnSource</a><a class="tag" taget="_blank" href="/search/expire%2Fdel/1.htm">expire/del</a><a class="tag" taget="_blank" href="/search/incr%2Flpush/1.htm">incr/lpush</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%88%86%E5%8C%BA/1.htm">数据库分区</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a>
                                    <div>最近项目中用到比较多redis,感觉之前对它一直局限于get/set数据的层面。其实作为一个强大的NoSql数据库产品,如果好好利用它,会带来很多意想不到的效果。(因为我搞java,所以就从jedis的角度来补充一点东西吧。PS:不一定全,只是个人理解,不喜勿喷) 
  
1、关于JedisPool.returnSource(Jedis jeids) 
  
这个方法是从red</div>
                                </li>
                                <li><a href="/article/149.htm"
                                       title="SQL性能优化-持续更新中。。。。。。" target="_blank">SQL性能优化-持续更新中。。。。。。</a>
                                    <span class="text-muted">atongyeye</span>
<a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a>
                                    <div>1 通过ROWID访问表--索引 
你可以采用基于ROWID的访问方式情况,提高访问表的效率, , ROWID包含了表中记录的物理位置信息..ORACLE采用索引(INDEX)实现了数据和存放数据的物理位置(ROWID)之间的联系. 通常索引提供了快速访问ROWID的方法,因此那些基于索引列的查询就可以得到性能上的提高. 
 
2 共享SQL语句--相同的sql放入缓存 
 
3 选择最有效率的表</div>
                                </li>
                                <li><a href="/article/276.htm"
                                       title="[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善" target="_blank">[JAVA语言]JAVA虚拟机对底层硬件的操控还不完善</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/JAVA%E8%99%9A%E6%8B%9F%E6%9C%BA/1.htm">JAVA虚拟机</a>
                                    <div> 
     如果我们用汇编语言编写一个直接读写CPU寄存器的代码段,然后利用这个代码段去控制被操作系统屏蔽的硬件资源,这对于JVM虚拟机显然是不合法的,对操作系统来讲,这样也是不合法的,但是如果是一个工程项目的确需要这样做,合同已经签了,我们又不能够这样做,怎么办呢? 那么一个精通汇编语言的那种X客,是否在这个时候就会发生某种至关重要的作用呢? 
 
&n</div>
                                </li>
                                <li><a href="/article/403.htm"
                                       title="lvs- real" target="_blank">lvs- real</a>
                                    <span class="text-muted">男人50</span>
<a class="tag" taget="_blank" href="/search/LVS/1.htm">LVS</a>
                                    <div>#!/bin/bash 
# 
# Script to start LVS DR real server. 
# description: LVS DR real server 
# 
#.  /etc/rc.d/init.d/functions 
 
VIP=10.10.6.252 
host='/bin/hostname' 
 
case "$1" in 
sta</div>
                                </li>
                                <li><a href="/article/530.htm"
                                       title="生成公钥和私钥" target="_blank">生成公钥和私钥</a>
                                    <span class="text-muted">oloz</span>
<a class="tag" taget="_blank" href="/search/DSA/1.htm">DSA</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E5%8A%A0%E5%AF%86/1.htm">安全加密</a>
                                    <div>package com.msserver.core.util;

import java.security.KeyPair;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;

public class SecurityUtil {
</div>
                                </li>
                                <li><a href="/article/657.htm"
                                       title="UIView 中加入的cocos2d,背景透明" target="_blank">UIView 中加入的cocos2d,背景透明</a>
                                    <span class="text-muted">374016526</span>
<a class="tag" taget="_blank" href="/search/cocos2d/1.htm">cocos2d</a><a class="tag" taget="_blank" href="/search/glClearColor/1.htm">glClearColor</a>
                                    <div>要点是首先pixelFormat:kEAGLColorFormatRGBA8,必须有alpha层才能透明。然后view设置为透明glView.opaque = NO;[director setOpenGLView:glView];[self.viewController.view setBackgroundColor:[UIColor clearColor]];[self.viewControll</div>
                                </li>
                                <li><a href="/article/784.htm"
                                       title="mysql常用命令" target="_blank">mysql常用命令</a>
                                    <span class="text-muted">香水浓</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>连接数据库 
mysql -u troy -ptroy 
 
备份表 
mysqldump -u troy -ptroy mm_database mm_user_tbl > user.sql 
 
恢复表(与恢复数据库命令相同) 
mysql -u troy -ptroy mm_database < user.sql 
 
备份数据库 
mysqldump -u troy -ptroy</div>
                                </li>
                                <li><a href="/article/911.htm"
                                       title="我的架构经验系列文章 - 后端架构 - 系统层面" target="_blank">我的架构经验系列文章 - 后端架构 - 系统层面</a>
                                    <span class="text-muted">agevs</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/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a>
                                    <div>系统层面:
高可用性

所谓高可用性也就是通过避免单独故障加上快速故障转移实现一旦某台物理服务器出现故障能实现故障快速恢复。一般来说,可以采用两种方式,如果可以做业务可以做负载均衡则通过负载均衡实现集群,然后针对每一台服务器进行监控,一旦发生故障则从集群中移除;如果业务只能有单点入口那么可以通过实现Standby机加上虚拟IP机制,实现Active机在出现故障之后虚拟IP转移到Standby的快速</div>
                                </li>
                                <li><a href="/article/1038.htm"
                                       title="利用ant进行远程tomcat部署" target="_blank">利用ant进行远程tomcat部署</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a>
                                    <div>在javaEE项目中,需要将工程部署到远程服务器上,如果部署的频率比较高,手动部署的方式就比较麻烦,可以利用Ant工具实现快捷的部署。这篇博文详细介绍了ant配置的步骤(http://www.cnblogs.com/GloriousOnion/archive/2012/12/18/2822817.html),但是在tomcat7以上不适用,需要修改配置,具体如下: 
1.配置tomcat的用户角色</div>
                                </li>
                                <li><a href="/article/1165.htm"
                                       title="获取复利总收入" target="_blank">获取复利总收入</a>
                                    <span class="text-muted">baalwolf</span>
<a class="tag" taget="_blank" href="/search/%E8%8E%B7%E5%8F%96/1.htm">获取</a>
                                    <div>       public static void main(String args[]){ 
        int money=200; 
        int year=1; 
        double rate=0.1; 
&</div>
                                </li>
                                <li><a href="/article/1292.htm"
                                       title="eclipse.ini解释" target="_blank">eclipse.ini解释</a>
                                    <span class="text-muted">BigBird2012</span>
<a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a>
                                    <div>大多数java开发者使用的都是eclipse,今天感兴趣去eclipse官网搜了一下eclipse.ini的配置,供大家参考,我会把关键的部分给大家用中文解释一下。还是推荐有问题不会直接搜谷歌,看官方文档,这样我们会知道问题的真面目是什么,对问题也有一个全面清晰的认识。 
Overview 
1、Eclipse.ini的作用 
Eclipse startup is controlled by th</div>
                                </li>
                                <li><a href="/article/1419.htm"
                                       title="AngularJS实现分页功能" target="_blank">AngularJS实现分页功能</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5/1.htm">分页</a>
                                    <div>        对于大多数web应用来说显示项目列表是一种很常见的任务。通常情况下,我们的数据会比较多,无法很好地显示在单个页面中。在这种情况下,我们需要把数据以页的方式来展示,同时带有转到上一页和下一页的功能。既然在整个应用中这是一种很常见的需求,那么把这一功能抽象成一个通用的、可复用的分页(Paginator)服务是很有意义的。 
  &nbs</div>
                                </li>
                                <li><a href="/article/1546.htm"
                                       title="[Maven学习笔记三]Maven archetype" target="_blank">[Maven学习笔记三]Maven archetype</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/ArcheType/1.htm">ArcheType</a>
                                    <div>archetype的英文意思是原型,Maven archetype表示创建Maven模块的模版,比如创建web项目,创建Spring项目等等. 
  
mvn archetype提供了一种命令行交互式创建Maven项目或者模块的方式, 
  
mvn archetype 
  
1.在LearnMaven-ch03目录下,执行命令mvn archetype:gener</div>
                                </li>
                                <li><a href="/article/1673.htm"
                                       title="【Java命令三】jps" target="_blank">【Java命令三】jps</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/Java%E5%91%BD%E4%BB%A4/1.htm">Java命令</a>
                                    <div>jps很简单,用于显示当前运行的Java进程,也可以连接到远程服务器去查看 
  
[hadoop@hadoop bin]$ jps -help
usage: jps [-help]
       jps [-q] [-mlvV] [<hostid>]

Definitions:
    <hostid>:      <hostname>[:</div>
                                </li>
                                <li><a href="/article/1800.htm"
                                       title="ZABBIX2.2 2.4 等各版本之间的兼容性" target="_blank">ZABBIX2.2 2.4 等各版本之间的兼容性</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>zabbix更新很快,从2009年到现在已经更新多个版本,为了使用更多zabbix的新特性,随之而来的便是升级版本,zabbix版本兼容性是必须优先考虑的一点 客户端AGENT兼容 
zabbix1.x到zabbix2.x的所有agent都兼容zabbix server2.4:如果你升级zabbix server,客户端是可以不做任何改变,除非你想使用agent的一些新特性。 Zabbix代理(p</div>
                                </li>
                                <li><a href="/article/1927.htm"
                                       title="unity 3d还是cocos2dx哪个适合游戏?" target="_blank">unity 3d还是cocos2dx哪个适合游戏?</a>
                                    <span class="text-muted">brotherlamp</span>
<a class="tag" taget="_blank" href="/search/unity%E8%87%AA%E5%AD%A6/1.htm">unity自学</a><a class="tag" taget="_blank" href="/search/unity%E6%95%99%E7%A8%8B/1.htm">unity教程</a><a class="tag" taget="_blank" href="/search/unity%E8%A7%86%E9%A2%91/1.htm">unity视频</a><a class="tag" taget="_blank" href="/search/unity%E8%B5%84%E6%96%99/1.htm">unity资料</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a>
                                    <div>unity 3d还是cocos2dx哪个适合游戏? 
问:unity 3d还是cocos2dx哪个适合游戏? 
答:首先目前来看unity视频教程因为是3d引擎,目前对2d支持并不完善,unity 3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves,sm2, 
</div>
                                </li>
                                <li><a href="/article/2054.htm"
                                       title="百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序" target="_blank">百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序</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/%E7%AE%97%E6%B3%95/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/%E7%99%BE%E5%BA%A6/1.htm">百度</a><a class="tag" taget="_blank" href="/search/%E6%8B%9B%E8%81%98/1.htm">招聘</a>
                                    <div>

import java.util.Arrays;

/**
 * 最早是在陈利人老师的微博看到这道题:
 * #面试题#An array with n elements which is K most sorted,就是每个element的初始位置和它最终的排序后的位置的距离不超过常数K
 * 设计一个排序算法。It should be faster than O(n*lgn)。</div>
                                </li>
                                <li><a href="/article/2181.htm"
                                       title="获取checkbox复选框的值" target="_blank">获取checkbox复选框的值</a>
                                    <span class="text-muted">chiangfai</span>
<a class="tag" taget="_blank" href="/search/checkbox/1.htm">checkbox</a>
                                    <div><title>CheckBox</title>
  <script type = "text/javascript">
	doGetVal: function  doGetVal()
	{
		//var fruitName = document.getElementById("apple").value;//根据</div>
                                </li>
                                <li><a href="/article/2308.htm"
                                       title="MySQLdb用户指南" target="_blank">MySQLdb用户指南</a>
                                    <span class="text-muted">chenchao051</span>
<a class="tag" taget="_blank" href="/search/mysqldb/1.htm">mysqldb</a>
                                    <div>原网页被墙,放这里备用。  MySQLdb User's Guide  
Contents 
 
 Introduction 
 Installation 
  _mysql 
   
   MySQL C API translation 
   MySQL C API function mapping 
   Some _mysql examples 
    
  MySQLdb 
   
 </div>
                                </li>
                                <li><a href="/article/2435.htm"
                                       title="HIVE 窗口及分析函数" target="_blank">HIVE 窗口及分析函数</a>
                                    <span class="text-muted">daizj</span>
<a class="tag" taget="_blank" href="/search/hive/1.htm">hive</a><a class="tag" taget="_blank" href="/search/%E7%AA%97%E5%8F%A3%E5%87%BD%E6%95%B0/1.htm">窗口函数</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E6%9E%90%E5%87%BD%E6%95%B0/1.htm">分析函数</a>
                                    <div>窗口函数应用场景: 
(1)用于分区排序 
(2)动态Group By 
(3)Top N 
(4)累计计算 
(5)层次查询 
 
一、分析函数 
用于等级、百分点、n分片等。 
函数             说明 
RANK()     &nbs</div>
                                </li>
                                <li><a href="/article/2562.htm"
                                       title="PHP ZipArchive 实现压缩解压Zip文件" target="_blank">PHP ZipArchive 实现压缩解压Zip文件</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/zip/1.htm">zip</a>
                                    <div>  
PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流。这里整理一下常用的示例供参考。 
一、解压缩zip文件        01   02   03   04   05   06   07   08   09   10   11   </div>
                                </li>
                                <li><a href="/article/2689.htm"
                                       title="精彩英语贺词" target="_blank">精彩英语贺词</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E8%8B%B1%E8%AF%AD/1.htm">英语</a>
                                    <div>I'm always here  
            我会一直在这里支持你  
              &nb</div>
                                </li>
                                <li><a href="/article/2816.htm"
                                       title="基于Java注解的Spring的IoC功能" target="_blank">基于Java注解的Spring的IoC功能</a>
                                    <span class="text-muted">e200702084</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/bean/1.htm">bean</a><a class="tag" taget="_blank" href="/search/IOC/1.htm">IOC</a><a class="tag" taget="_blank" href="/search/Office/1.htm">Office</a>
                                    <div>                                
  </div>
                                </li>
                                <li><a href="/article/2943.htm"
                                       title="java模拟post请求" target="_blank">java模拟post请求</a>
                                    <span class="text-muted">geeksun</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>一般API接收客户端(比如网页、APP或其他应用服务)的请求,但在测试时需要模拟来自外界的请求,经探索,使用HttpComponentshttpClient可模拟Post提交请求。  此处用HttpComponents的httpclient来完成使命。   
import org.apache.http.HttpEntity ;
import org.apache.http.HttpRespon</div>
                                </li>
                                <li><a href="/article/3070.htm"
                                       title="Swift语法之 ---- ?和!区别" target="_blank">Swift语法之 ---- ?和!区别</a>
                                    <span class="text-muted">hongtoushizi</span>
<a class="tag" taget="_blank" href="/search/%3F/1.htm">?</a><a class="tag" taget="_blank" href="/search/swift/1.htm">swift</a><a class="tag" taget="_blank" href="/search/%21/1.htm">!</a>
                                    <div>转载自: http://blog.sina.com.cn/s/blog_71715bf80102ux3v.html 
  
Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会有默认值,所以要求使用变量之前必须要对其初始化。如果在使用变量之前不进行初始化就会报错:  
var stringValue : String 
//</div>
                                </li>
                                <li><a href="/article/3197.htm"
                                       title="centos7安装jdk1.7" target="_blank">centos7安装jdk1.7</a>
                                    <span class="text-muted">jisonami</span>
<a class="tag" taget="_blank" href="/search/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a>
                                    <div>安装JDK1.7 
步骤1、解压tar包在当前目录 
[root@localhost usr]#tar -xzvf jdk-7u75-linux-x64.tar.gz 
步骤2:配置环境变量 
在etc/profile文件下添加 
export JAVA_HOME=/usr/java/jdk1.7.0_75 
export CLASSPATH=/usr/java/jdk1.7.0_75/lib 
</div>
                                </li>
                                <li><a href="/article/3324.htm"
                                       title="数据源架构模式之数据映射器" target="_blank">数据源架构模式之数据映射器</a>
                                    <span class="text-muted">home198979</span>
<a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%98%A0%E5%B0%84%E5%99%A8/1.htm">数据映射器</a><a class="tag" taget="_blank" href="/search/datamapper/1.htm">datamapper</a>
                                    <div>前面分别介绍了数据源架构模式之表数据入口、数据源架构模式之行和数据入口数据源架构模式之活动记录,相较于这三种数据源架构模式,数据映射器显得更加“高大上”。 
  
一、概念 
数据映射器(Data Mapper):在保持对象和数据库(以及映射器本身)彼此独立的情况下,在二者之间移动数据的一个映射器层。概念永远都是抽象的,简单的说,数据映射器就是一个负责将数据映射到对象的类数据。 
&nb</div>
                                </li>
                                <li><a href="/article/3451.htm"
                                       title="在Python中使用MYSQL" target="_blank">在Python中使用MYSQL</a>
                                    <span class="text-muted">pda158</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a>
                                    <div>缘由     近期在折腾一个小东西须要抓取网上的页面。然后进行解析。将结果放到 
数据库中。     了解到 
Python在这方面有优势,便选用之。     由于我有台 
server上面安装有 
mysql,自然使用之。在进行数据库的这个操作过程中遇到了不少问题,这里 
记录一下,大家共勉。      
python中mysql的调用      
百度之后能够通过MySQLdb进行数据库操作。</div>
                                </li>
                                <li><a href="/article/3578.htm"
                                       title="单例模式" target="_blank">单例模式</a>
                                    <span class="text-muted">hxl1988_0311</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E4%BE%8B/1.htm">单例</a><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%BB%B6/1.htm">单件</a>
                                    <div>package com.sosop.designpattern.singleton;

/*
 * 单件模式:保证一个类必须只有一个实例,并提供全局的访问点
 * 
 * 所以单例模式必须有私有的构造器,没有私有构造器根本不用谈单件
 * 
 * 必须考虑到并发情况下创建了多个实例对象
 * */

/**
 * 虽然有锁,但是只在第一次创建对象的时候加锁,并发时不会存在效率</div>
                                </li>
                                <li><a href="/article/3705.htm"
                                       title="27种迹象显示你应该辞掉程序员的工作" target="_blank">27种迹象显示你应该辞掉程序员的工作</a>
                                    <span class="text-muted">vipshichg</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C/1.htm">工作</a>
                                    <div>1、你仍然在等待老板在2010年答应的要提拔你的暗示。 2、你的上级近10年没有开发过任何代码。 3、老板假装懂你说的这些技术,但实际上他完全不知道你在说什么。 4、你干完的项目6个月后才部署到现场服务器上。 5、时不时的,老板在检查你刚刚完成的工作时,要求按新想法重新开发。 6、而最终这个软件只有12个用户。 7、时间全浪费在办公室政治中,而不是用在开发好的软件上。 8、部署前5分钟才开始测试。</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>