PageSourceSearch

https://2dogz.cn/index/

html 2dogz.cn collected 2026-10-07 19:50:10 UTC 51,885 bytes, 956 lines download raw bytes

1<!DOCTYPE html>
2
3<!--suppress ALL -->
4<html lang="zh-hans">
5
6    <head>
7        <meta charset="UTF-8">
8        <title>Pythonic编程分享-
9    Home
10 - Blogin</title>
11        <meta name="viewport" content="width=device-width, initial-scale=1">
12        <link rel="shortcut icon" href="/static/favicon.png" type="image/x-icon">
13        <link rel="icon" href="/static/favicon.png" type="image/x-icon">
14        
14<script src="/static/jquery/jquery-3.5.1.min.js"></script>
14
15        <link rel="stylesheet" href="/static/css/base.css">
16        <link rel="stylesheet" href="/static/css/ck.css">
17        <link rel="stylesheet" href="/static/css/style.css">
18        <link rel="stylesheet" href="/static/skeleton/jquery.skeleton.css">
19        
19<script src="/static/skeleton/jquery.scheletrone.js"></script>
19
20        
20<script src="/static/js/base.js"></script>
20
21        
22            <link rel="stylesheet" href="/static/bootstrap4/light/lux.bootstrap.min.css">
23            <link rel="stylesheet" href="/static/css/light.css">
24        
25        
25<script src="/static/popper/popper.min.js"></script>
25
26        
26<script src="/static/bootstrap-4.5.3-dist/js/bootstrap.min.js"></script>
26
27        <link rel="stylesheet" href="/static/font-awesome-4.7.0/css/font-awesome.css">
28        
28<script src="/static/js/moment-with-locales.min.js"></script>
vendor: 1 bytes, line 28
28
29<script>
30moment.locale("en");
31function flask_moment_render(elem) {
32    timestamp = moment($(elem).data('timestamp'));
33    func = $(elem).data('function');
34    format = $(elem).data('format');
35    timestamp2 = $(elem).data('timestamp2');
36    no_suffix = $(elem).data('nosuffix');
37    args = [];
38    if (format)
39        args.push(format);
40    if (timestamp2)
41        args.push(moment(timestamp2));
42    if (no_suffix)
43        args.push(no_suffix);
44    $(elem).text(timestamp[func].apply(timestamp, args));
45    $(elem).removeClass('flask-moment').show();
46}
47function flask_moment_render_all() {
48    $('.flask-moment').each(function() {
49        flask_moment_render(this);
50        if ($(this).data('refresh')) {
51            (function(elem, interval) { setInterval(function() { flask_moment_render(elem) }, interval); })(this, $(this).data('refresh'));
52        }
53    })
54}
55$(document).ready(function() {
56    flask_moment_render_all();
57});
58</script>
58
59        
59<script src="/static/echarts-4.9.0/echarts.min.js"></script>
59
60        <style>
61            .gray-a {
62                text-decoration: none;
63                color: rgba(0, 0, 0, .5);
64            }
65
66            .gray-a:hover {
67                color: forestgreen;
68                text-decoration: none;
69            }
70        </style>
71        
71<script>
72            var _hmt = _hmt || [];
73            (function () {
74                var hm = document.createElement("script");
75                hm.src = "https://hm.baidu.com/hm.js?499b91ba844d6acdd945978a6b873e55";
76                var s = document.getElementsByTagName("script")[0];
77                s.parentNode.insertBefore(hm, s);
78            })();
79        </script>
79
80    </head>
81
82
83
84    <nav style="flex: none" class="navbar navbar-expand-lg bg-nav justify-content-between">
85        <a class="navbar-brand nav-text" href="/">
86            
87                <img src="/static/img/logo.png" alt="logo" width="104px" height="36px">
88            
89        </a>
90        <button class="navbar-toggler navbar-light bg-light"
91                type="button" data-toggle="collapse" data-target="#collapsibleNavbar">
92            <span class="navbar-toggler-icon"></span>
93        </button>
94        <div class="navbar-collapse collapse" id="collapsibleNavbar">
95            <ul class="navbar-nav mr-auto">
96                
97    <li class="nav-item" style="margin-right: 50px;">
98        <a class="nav-link nav-text nav-active" href="/index/">
99            <i class="fa fa-home"></i>
100            主页
101        </a>
102    </li>
103
104                
105    <li class="nav-item" style="margin-right: 50px;">
106        <a class="nav-link nav-text " href="/gallery/all/">
107            <i class="fa fa-photo"></i>
108            相册
109        </a>
110    </li>
111
112                
113    <li class="nav-item" style="margin-right: 50px;">
114        <a class="nav-link nav-text " href="/blogs/archive/">
115            <i class="fa fa-archive"></i>
116            归档
117        </a>
118    </li>
119
120                
121    <li class="nav-item" style="margin-right: 50px;">
122        <a class="nav-link nav-text " href="/tool/">
123            <i class="fa fa-steam"></i>
124            工具
125        </a>
126    </li>
127
128
129                
130    <li class="nav-item dropdown " style="margin-right: 50px;">
131        <a class="nav-link nav-text dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
132            <i class="fa fa-subway"></i> SOUL
133        </a>
134        <div class="dropdown-menu mt-0 rounded-0 border-0" aria-labelledby="navbarDropdown">
135            
136                <a class="dropdown-item" href="/soul/"><i class="fa fa-file-code-o mr-2"></i>毒鸡汤</a>
137            
138                <a class="dropdown-item" href="/ts-poem/"><i class="fa fa-file-text-o mr-2"></i>唐宋诗</a>
139            
140                <a class="dropdown-item" href="/song-ci/"><i class="fa fa-file-text mr-2"></i>宋词</a>
141            
142                <a class="dropdown-item" href="/api/introduce/"><i class="fa fa-exchange mr-2"></i>API</a>
143            
144                <a class="dropdown-item" href="/rss-feed/index/"><i class="fa fa-rss-square mr-2"></i>RSS</a>
145            
146                <a class="dropdown-item" href="/timeline/"><i class="fa fa-list-ol mr-2"></i>建站日志</a>
147            
148
149
150
151
152
153        </div>
154    </li>
155
156            </ul>
157            <form class="form-inline my-2 my-lg-0 mr-4 f-17" method="get" action="/search">
158                <input class="form-control mr-sm-2 " type="search" name="q" placeholder="搜索关键字" aria-label="Search"
159                       required>
160                <button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button>
161            </form>
162            
163                <ul class="navbar-nav f-17">
164                    <li class="nav-item"><a class="nav-link nav-text" href="/auth/login/">登录</a></li>
165                    <li class="nav-item"><a class="nav-link nav-text" href="/auth/register/">注册</a></li>
166                </ul>
167            
168        </div>
169    </nav>
170
171
172    <main>
173        
173<script>
174var locale = window.navigator.userLanguage || window.navigator.language;
175moment.locale(locale);
176</script>
176
177        <br>
178        <div class="container">
179            
180            <div class="row">
181                <div class="col-lg-8">
182                    <!-- Author's brief information -->
183                    <div class="card mb-3">
184                        <div class="text-muted card-header ">
185                            <strong>清水</strong>的个人资料
186                        </div>
187                        <div class="card-body">
188                            <div class="row">
189                                <div class="col-3">
190                                    <img class="img-fluid rounded" alt="OwnerAvatar" src="/accounts/avatar/Macvcarton-avatar.png">
191                                </div>
192                                <div class="col-9">
193                                    <h3><strong>Blogin</strong></h3>
194                                    <p class="text-muted">个人网站: <i class="fa fa-link"></i> <a class="text-muted gray-a" href="http://2dogz.cn" target="_blank">清水的个人网站</a></p>
195                                    <p class="text-muted">建站时间: <i class="fa fa-clock-o"></i> 2020-08-27</p>
196                                    <p class="text-muted">联系邮箱: <i class="fa fa-envelope"></i> <a class="text-decoration-none text-muted" href="mailto:[email protected]">[email protected]</a></p>
197                                    <br>
198                                    <a href="/loveme/" title="总共被点赞4301次" class="btn btn-danger float-right"><i class="fa fa-heart-o"></i></a>
199                                </div>
200                            </div>
201                        </div>
202                    </div>
203                    <!-- Post list -->
204                    <div class="summary-list">
205                        
206                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div top-post-div">
207                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
208                                    <a href="/blog/article/29/">
209                                        <img class="w-100 article-img" src="/backend/blog/img/2021-02-07/u=3435461981,3098770637&amp;fm=26&amp;gp=0.jpg" alt="给ngxin服务器添加HTTPS">
210                                    </a>
211                                </div>
212                                <div class="media-body">
213                                    <div class="text-muted mb-2 f-12">
214                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
215                                        <span class="badge badge-inverse" title="2021-02-07 14:23:49"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2021-02-07T14:23:49" data-function="fromNow" data-refresh="60000" style="display: none">2021-02-07T14:23:49</span></span>
216                                    </div>
217                                    <h5 class="title-brief">
218                                        <a style="text-decoration: none;" href="/blog/article/29/">给ngxin服务器添加HTTPS</a>
219                                    </h5>
220                                    <p class="d-none d-sm-block mb-2 f-15">之前在v2ex发帖,很多大佬都diss我没有把这个网站上HTTPS,个人觉得一个私人的博客网站没有什么必要去上HTTPS,所以就一直没有弄,看了那么多大佬diss,最后还是把这个博客网站上了HT...</p>
221                                    <p class="d-block d-sm-none mb-2 f-15">之前在v2ex发帖,很多大佬都diss我没有把这个网站上HTTPS,个人觉得一个私人的博客网站...</p>
222                                    <div class="text-muted mb-0 f-12">
223                                        <a style="text-decoration: none;" href="/blog/cate/2/" title="查看更多当前分类下博客">
224                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>应用部署</span>
225                                        </a>
226                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>4592</span>
227                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>13</span>
228                                    </div>
229                                </div>
230                            </div>
231                        
232                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
233                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
234                                    <a href="/blog/article/66/">
235                                        <img class="w-100 article-img" src="/backend/blog/img/2026-07-11/wechat_2026-07-11_105219_182.png" alt="Ubuntu 上 Edge 无法保存密码和自动填充:一份可复现的排查与修复手册">
236                                    </a>
237                                </div>
238                                <div class="media-body">
239                                    <div class="text-muted mb-2 f-12">
240                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
241                                        <span class="badge badge-inverse" title="2026-07-11 10:52:53"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2026-07-11T10:52:53" data-function="fromNow" data-refresh="60000" style="display: none">2026-07-11T10:52:53</span></span>
242                                    </div>
243                                    <h5 class="title-brief">
244                                        <a style="text-decoration: none;" href="/blog/article/66/">Ubuntu 上 Edge 无法保存密码和自动填充:一份可复现的排查与修复手册</a>
245                                    </h5>
246                                    <p class="d-none d-sm-block mb-2 f-15">这次遇到的问题是:在 Ubuntu 上使用 Edge 浏览器时,密码保存和自动填充突然失效。 表现为登录网站后不再稳定弹出“保存密码”,或者保存后重开浏览器不自动填充。</p>
247                                    <p class="d-block d-sm-none mb-2 f-15">这次遇到的问题是:在 Ubuntu 上使用 Edge 浏览器时,密码保存和自动填充突然失效。...</p>
248                                    <div class="text-muted mb-0 f-12">
249                                        <a style="text-decoration: none;" href="/blog/cate/4/" title="查看更多当前分类下博客">
250                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>Linux</span>
251                                        </a>
252                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>248</span>
253                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>0</span>
254                                    </div>
255                                </div>
256                            </div>
257                        
258                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
259                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
260                                    <a href="/blog/article/65/">
261                                        <img class="w-100 article-img" src="/backend/blog/img/2026-02-13/新对话.png" alt="组合优于继承:用 Python 讲清楚设计取舍">
262                                    </a>
263                                </div>
264                                <div class="media-body">
265                                    <div class="text-muted mb-2 f-12">
266                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
267                                        <span class="badge badge-inverse" title="2026-02-13 21:13:28"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2026-02-13T21:13:28" data-function="fromNow" data-refresh="60000" style="display: none">2026-02-13T21:13:28</span></span>
268                                    </div>
269                                    <h5 class="title-brief">
270                                        <a style="text-decoration: none;" href="/blog/article/65/">组合优于继承:用 Python 讲清楚设计取舍</a>
271                                    </h5>
272                                    <p class="d-none d-sm-block mb-2 f-15">最近在学习Go语言,发现Go中没有OOP的继承特性,几经周折搜索,发现一种优于继承的设计方式:组合。</p>
273                                    <p class="d-block d-sm-none mb-2 f-15">最近在学习Go语言,发现Go中没有OOP的继承特性,几经周折搜索,发现一种优于继承的设计方式:组合。</p>
274                                    <div class="text-muted mb-0 f-12">
275                                        <a style="text-decoration: none;" href="/blog/cate/3/" title="查看更多当前分类下博客">
276                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>Python</span>
277                                        </a>
278                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>520</span>
279                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>0</span>
280                                    </div>
281                                </div>
282                            </div>
283                        
284                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
285                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
286                                    <a href="/blog/article/64/">
287                                        <img class="w-100 article-img" src="/backend/blog/img/2025-01-18/生成 Python 宣传图.png" alt="Python上下文管理">
288                                    </a>
289                                </div>
290                                <div class="media-body">
291                                    <div class="text-muted mb-2 f-12">
292                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
293                                        <span class="badge badge-inverse" title="2025-01-18 14:53:07"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2025-01-18T14:53:07" data-function="fromNow" data-refresh="60000" style="display: none">2025-01-18T14:53:07</span></span>
294                                    </div>
295                                    <h5 class="title-brief">
296                                        <a style="text-decoration: none;" href="/blog/article/64/">Python上下文管理</a>
297                                    </h5>
298                                    <p class="d-none d-sm-block mb-2 f-15">在Python中有个其他语言没有关键字with,我们一般在日常中使用的比较多的就是通过with来操作文件,本篇文章深入了解一下其实现原理。</p>
299                                    <p class="d-block d-sm-none mb-2 f-15">在Python中有个其他语言没有关键字with,我们一般在日常中使用的比较多的就是通过with...</p>
300                                    <div class="text-muted mb-0 f-12">
301                                        <a style="text-decoration: none;" href="/blog/cate/1/" title="查看更多当前分类下博客">
302                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>Leetcode</span>
303                                        </a>
304                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>3469</span>
305                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>0</span>
306                                    </div>
307                                </div>
308                            </div>
309                        
310                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
311                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
312                                    <a href="/blog/article/62/">
313                                        <img class="w-100 article-img" src="/backend/blog/img/2024-10-23/Snipaste_2024-10-23_00-24-55.jpg" alt="gunicorn部署多进程不是flask应用无法刷新配置问题">
314                                    </a>
315                                </div>
316                                <div class="media-body">
317                                    <div class="text-muted mb-2 f-12">
318                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
319                                        <span class="badge badge-inverse" title="2024-04-03 23:02:02"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2024-04-03T23:02:02" data-function="fromNow" data-refresh="60000" style="display: none">2024-04-03T23:02:02</span></span>
320                                    </div>
321                                    <h5 class="title-brief">
322                                        <a style="text-decoration: none;" href="/blog/article/62/">gunicorn部署多进程不是flask应用无法刷新配置问题</a>
323                                    </h5>
324                                    <p class="d-none d-sm-block mb-2 f-15">gunicorn是一个Python的WSGI工具,相较于flask的内置开发服务器,其具有高性能、多并发等特性,一般在生产环境使用的比较多,本篇文章介绍一下在部署中遇到的与开发环境结果不一致的问题。</p>
325                                    <p class="d-block d-sm-none mb-2 f-15">gunicorn是一个Python的WSGI工具,相较于flask的内置开发服务器,其具有高性...</p>
326                                    <div class="text-muted mb-0 f-12">
327                                        <a style="text-decoration: none;" href="/blog/cate/2/" title="查看更多当前分类下博客">
328                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>应用部署</span>
329                                        </a>
330                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>4331</span>
331                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>4</span>
332                                    </div>
333                                </div>
334                            </div>
335                        
336                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
337                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
338                                    <a href="/blog/article/61/">
339                                        <img class="w-100 article-img" src="/backend/blog/img/2024-01-28/pydal.JPG" alt="web2py创建数据库表增加自动创建普通索引功能">
340                                    </a>
341                                </div>
342                                <div class="media-body">
343                                    <div class="text-muted mb-2 f-12">
344                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
345                                        <span class="badge badge-inverse" title="2024-01-28 16:38:21"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2024-01-28T16:38:21" data-function="fromNow" data-refresh="60000" style="display: none">2024-01-28T16:38:21</span></span>
346                                    </div>
347                                    <h5 class="title-brief">
348                                        <a style="text-decoration: none;" href="/blog/article/61/">web2py创建数据库表增加自动创建普通索引功能</a>
349                                    </h5>
350                                    <p class="d-none d-sm-block mb-2 f-15">在Python常见的ORM框架中都支持在创建数据库字段的时候通过index=True的方式自动给字段创建普通索引的功能,比如Django的ORM以及SQLAlchemy等,但是web2py的数据...</p>
351                                    <p class="d-block d-sm-none mb-2 f-15">在Python常见的ORM框架中都支持在创建数据库字段的时候通过index=True的方式自动...</p>
352                                    <div class="text-muted mb-0 f-12">
353                                        <a style="text-decoration: none;" href="/blog/cate/3/" title="查看更多当前分类下博客">
354                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>Python</span>
355                                        </a>
356                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>4754</span>
357                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>6</span>
358                                    </div>
359                                </div>
360                            </div>
361                        
362                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
363                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
364                                    <a href="/blog/article/60/">
365                                        <img class="w-100 article-img" src="/backend/blog/img/2023-09-18/output.png" alt="Gerrit接口使用说明">
366                                    </a>
367                                </div>
368                                <div class="media-body">
369                                    <div class="text-muted mb-2 f-12">
370                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
371                                        <span class="badge badge-inverse" title="2023-09-18 23:55:56"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2023-09-18T23:55:56" data-function="fromNow" data-refresh="60000" style="display: none">2023-09-18T23:55:56</span></span>
372                                    </div>
373                                    <h5 class="title-brief">
374                                        <a style="text-decoration: none;" href="/blog/article/60/">
374Gerrit接口使用说明</a>
375                                    </h5>
376                                    <p class="d-none d-sm-block mb-2 f-15">Gerrit是一款功能强大的代码协作开发管理工具,其强制的代码审核功能,是其最大亮点、特色之一,同时还有细化到分支的权限控制等,本系列用来总结Gerrit相关调研内容。</p>
377                                    <p class="d-block d-sm-none mb-2 f-15">Gerrit是一款功能强大的代码协作开发管理工具,其强制的代码审核功能,是其最大亮点、特色之一...</p>
378                                    <div class="text-muted mb-0 f-12">
379                                        <a style="text-decoration: none;" href="/blog/cate/5/" title="查看更多当前分类下博客">
380                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>Git</span>
381                                        </a>
382                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>5011</span>
383                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>7</span>
384                                    </div>
385                                </div>
386                            </div>
387                        
388                            <div class="media mb-1 mb-sm-2 p-2 p-lg-3 blog-brief-div blog-content-brief-div ">
389                                <div class="align-self-center mr-2 mr-lg-3 w-25 modal-open">
390                                    <a href="/blog/article/59/">
391                                        <img class="w-100 article-img" src="/backend/blog/img/2023-07-09/Snipaste_2023-07-09_12-46-50.jpg" alt="Flask-SQLAlchemy一些高级用法记录(2)">
392                                    </a>
393                                </div>
394                                <div class="media-body">
395                                    <div class="text-muted mb-2 f-12">
396                                        <span class="badge badge-inverse"><i class="fa fa-user"></i> 清水</span>
397                                        <span class="badge badge-inverse" title="2023-07-09 12:47:19"><i class="fa fa-calendar-times-o ml-2 mr-1"></i><span class="flask-moment" data-timestamp="2023-07-09T12:47:19" data-function="fromNow" data-refresh="60000" style="display: none">2023-07-09T12:47:19</span></span>
398                                    </div>
399                                    <h5 class="title-brief">
400                                        <a style="text-decoration: none;" href="/blog/article/59/">Flask-SQLAlchemy一些高级用法记录(2)</a>
401                                    </h5>
402                                    <p class="d-none d-sm-block mb-2 f-15">在上一节中介绍了如何使用Mixin去定义公共字段,最近在实际工作中遇到了一些问题,同时也学到了一些新的高级用法,在本文中记录一下。</p>
403                                    <p class="d-block d-sm-none mb-2 f-15">在上一节中介绍了如何使用Mixin去定义公共字段,最近在实际工作中遇到了一些问题,同时也学到了...</p>
404                                    <div class="text-muted mb-0 f-12">
405                                        <a style="text-decoration: none;" href="/blog/cate/3/" title="查看更多当前分类下博客">
406                                            <span class="badge badge-inverse"><i class="fa fa-book mr-1"></i>Python</span>
407                                        </a>
408                                        <span class="badge badge-inverse"><i class="fa fa-eye ml-2 mr-1"></i>4977</span>
409                                        <span class="badge badge-inverse"><i class="fa fa-comment-o ml-2 mr-1"></i>7</span>
410                                    </div>
411                                </div>
412                            </div>
413                        
414                    </div>
415                    
416                        <div class="float-right">
417                            <nav aria-label="Page navigation">
418        <ul class="pagination ">
419            <li class="page-item disabled">
420                <a class="page-link"
421                   href="#">
422                    <span aria-hidden="true">&larr;</span>
423                </a>
424            </li>
425            <li class="page-item ">
426                <a class="page-link"
427                   href="/index/?page=2">
428                    <span aria-hidden="true">&rarr;</span>
429                </a>
430            </li>
431        </ul>
432    </nav>
433                        </div>
434                    
435                </div>
436                <div class="col-lg-4">
437                    <!--suppress ALL -->
438<div class="card mb-3">
439    <div class="card-header p-2 f-17">
440        <div class="d-flex">
441            <b class="flex-grow-1"><i class="fa fa-coffee" aria-hidden="true"></i> 每日一句</b>
442            
443                <a style="margin-bottom: 0px" href="/themes/dark/"><i
444                        class="fa fa-moon-o"></i></a>
445            
446        </div>
447    </div>
448    <div id="oneWord" class="card-body p-2 f-15">
449        <!-- <i class="fa fa-spinner fa-spin f-hint"></i> -->
450        <p class="mb-1">每日一句</p>
451    </div>
452</div>
453
454<!-- github卡片 -->
455<div class="card mb-3 mt-2">
456    <div class="card-header p-2 f-17">
457        <strong><i class="fa fa-github"></i> Github</strong>
458    </div>
459    <div class="card-body p-2 f-15">
460        <div id="github-card">
461            <div style="border-bottom: 1px solid rgba(58,10,10,0.19); margin-bottom: 5px;padding-bottom: 3px;"
462                 class="d-flex">
463                <a href="https://github.com/weijiang1994/" target="_blank"><img class="avatar-s" id="githubAvatar"
464                                                                                alt="avatar"
465                                                                                src="/static/github-avatar.png"></a>
466                <div class="ml-2">
467                    <h5 class="mb-0"><b>Blogin</b></h5>
468                </div>
469                <a class="btn btn-sm btn-light h-25" id="githubStar" hidden="hidden"
470                   href="https://github.com/weijiang1994/Blogin" target="_blank">Star</a>
471            </div>
472            <div id="shield-svg" class="text-left pr-1">
473                <p class="mb-1 d-block">shield</p>
474            </div>
475        </div>
476
477    </div>
478</div>
479
480<!-- 近期计划卡片 -->
481<div class="card mb-3 mt-2">
482    <div class="card-header p-2 f-17">
483        <strong><i class="fa fa-tasks"></i> 近期计划</strong>
484    </div>
485    <div class="card-body p-2 f-15">
486        
487        
488            <p style="margin-bottom: 2px">Web系列教程</p>
489            <div class="progress" title="计划周期20,已完成8" style="height: 10px">
490                <div class="progress-bar bg-info" style="width:40.0%"></div>
491            </div>
492        
493            <p style="margin-bottom: 2px">减肥~~~~~啊啊啊啊~~~~</p>
494            <div class="progress" title="计划周期30,已完成0" style="height: 10px">
495                <div class="progress-bar bg-info" style="width:0.0%"></div>
496            </div>
497        
498    </div>
499</div>
500
501<!-- 最近动态卡片 -->
502<div class="card mb-3 mt-2">
503    <div class="card-header p-2 f-17">
504        <strong><i class="fa fa-github"></i> 最近活动</strong>
505    </div>
506    <div class="card-body p-2 f-15">
507        <div style="width:100%;height:130px;" id="contribute" class="row text-center">
508        </div>
509    </div>
510</div>
511
512<!-- 博客分类 -->
513<div class="card mb-3 mt-2">
514    <div class="card-header p-2 f-17">
515        <strong><i class="fa fa-book"></i> 文章类别</strong>
516    </div>
517    <ul class="list-group list-group-flush f-16">
518        
519            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
520                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/1/"
521                   title="查看Leetcode下所有文章">Leetcode</a>
522                <span class="badge badge-pill badge-success"
523                      title="当前分类下有2篇文章">2</span>
524            </li>
525        
526            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
527                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/2/"
528                   title="查看应用部署下所有文章">应用部署</a>
529                <span class="badge badge-pill badge-success"
530                      title="当前分类下有12篇文章">12</span>
531            </li>
532        
533            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
534                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/3/"
535                   title="查看Python下所有文章">Python</a>
536                <span class="badge badge-pill badge-success"
537                      title="当前分类下有21篇文章">21</span>
538            </li>
539        
540            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
541                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/4/"
542                   title="查看Linux下所有文章">Linux</a>
543                <span class="badge badge-pill badge-success"
544                      title="当前分类下有7篇文章">7</span>
545            </li>
546        
547            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
548                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/5/"
549                   title="查看Git下所有文章">Git</a>
550                <span class="badge badge-pill badge-success"
551                      title="当前分类下有3篇文章">3</span>
552            </li>
553        
554            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
555                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/6/"
556                   title="查看系列教程下所有文章">系列教程</a>
557                <span class="badge badge-pill badge-success"
558                      title="当前分类下有10篇文章">10</span>
559            </li>
560        
561            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
562                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/7/"
563                   title="查看陈词滥调下所有文章">陈词滥调</a>
564                <span class="badge badge-pill badge-success"
565                      title="当前分类下有4篇文章">4</span>
566            </li>
567        
568            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
569                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/8/"
570                   title="查看MySQL下所有文章">MySQL</a>
571                <span class="badge badge-pill badge-success"
572                      title="当前分类下有3篇文章">3</span>
573            </li>
574        
575            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
576                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/9/"
577                   title="查看前端开发下所有文章">前端开发</a>
578                <span class="badge badge-pill badge-success"
579                      title="当前分类下有1篇文章">1</span>
580            </li>
581        
582            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
583                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/10/"
584                   title="查看测试相关下所有文章">测试相关</a>
585                <span class="badge badge-pill badge-success"
586                      title="当前分类下有1篇文章">1</span>
587            </li>
588        
589            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
590                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/11/"
591                   title="查看好文收录下所有文章">好文收录</a>
592                <span class="badge badge-pill badge-success"
593                      title="当前分类下有1篇文章">1</span>
594            </li>
595        
596            <li class="list-group-item d-flex justify-content-between align-items-center pr-2 py-2">
597                <a style="text-decoration: none" class="text-info-a" href="/blog/cate/12/"
598                   title="查看电子游戏下所有文章">电子游戏</a>
599                <span class="badge badge-pill badge-success"
600                      title="当前分类下有1篇文章">1</span>
601            </li>
602        
603    </ul>
604</div>
605
606<!-- 留言板 -->
607<div class="card mb-3 mt-2">
608    <div class="card-header p-2 f-17">
609        <div class="d-flex">
610            <b class="flex-grow-1"><i class="fa fa-weixin" aria-hidden="true"></i> 留言板</b>
611            <a style="margin-bottom: 0px" class="text-decoration-none"
612               href="/msg-border/"><small>更多</small><i class="fa fa-angle-double-right"></i></a>
613        </div>
614    </div>
615    <div class="card-body pl-3">
616        
617            <p class="mb-1">Macv: 查询MySQL事务占用
618...</p>
619        
620            <p class="mb-1">qwe: 2024-12-02
621å·¥...</p>
622        
623            <p class="mb-1">gx: 加油</p>
624        
625            <p class="mb-1">Macv: 毕竟几人真得鹿,不知终日梦为鱼。</p>
626        
627            <p class="mb-1">qqq: def...</p>
628        
629    </div>
630</div>
631<!-- 友情链接 -->
632<div class="card mb-3 mt-2">
633    <div class="card-header p-2 f-17">
634        <strong><i class="fa fa-link"></i> 友情链接</strong>
635    </div>
636    <div class="card-body px-0 py-3">
637        <div class="tool-list">
638            
639                <div class="w-50 float-left text-center mb-2">
640                    <div class="mx-2">
641                        <a class="text-info-a" style="text-decoration: none" href="https://dusays.com/"
642                           title="杜老师说程序生活" target="_blank">
643                            杜老师说</a>
644                    </div>
645                </div>
646            
647                <div class="w-50 float-left text-center mb-2">
648                    <div class="mx-2">
649                        <a class="text-info-a" style="text-decoration: none" href="https://oneisall.top"
650                           title="Django搭建的博客系统" target="_blank">
651                            未雨晴空</a>
652                    </div>
653                </div>
654            
655                <div class="w-50 float-left text-center mb-2">
656                    <div class="mx-2">
657                        <a class="text-info-a" style="text-decoration: none" href="https://bbs.2dogz.cn"
658                           title="博主创办的开源论坛" target="_blank">
659                            二狗学院</a>
660                    </div>
661                </div>
662            
663                <div class="w-50 float-left text-center mb-2">
664                    <div class="mx-2">
665                        <a class="text-info-a" style="text-decoration: none" href="https://blog.loli.top"
666                           title="有关于成长、生活与情感。" target="_blank">
667                            城南旧事</a>
668                    </div>
669                </div>
670            
671                <div class="w-50 float-left text-center mb-2">
672                    <div class="mx-2">
673                        <a class="text-info-a" style="text-decoration: none" href="https://linsanhu.com/"
674                           title="记录学习与生活的点滴" target="_blank">
675                            林三随笔</a>
676                    </div>
677                </div>
678            
679                <div class="w-50 float-left text-center mb-2">
680                    <div class="mx-2">
681                        <a class="text-info-a" style="text-decoration: none" href="https://www.foreverblog.cn/blog/2227.html"
682                           title="forever blog." target="_blank">
683                            十年之约</a>
684                    </div>
685                </div>
686            
687                <div class="w-50 float-left text-center mb-2">
688                    <div class="mx-2">
689                        <a class="text-info-a" style="text-decoration: none" href="http://106.13.18.133"
690                           title="zhangxu sd" target="_blank">
691                            冬月有约</a>
692                    </div>
693                </div>
694            
695                <div class="w-50 float-left text-center mb-2">
696                    <div class="mx-2">
697                        <a class="text-info-a" style="text-decoration: none" href="https://app.tmp.link/"
698                           title="良心文件中转网站" target="_blank">
699                            文件中转</a>
700                    </div>
701                </div>
702            
703                <div class="w-50 float-left text-center mb-2">
704                    <div class="mx-2">
705                        <a class="text-info-a" style="text-decoration: none" href="https://command-not-found.com/"
706                           title="查找未知Linux命令所对应的包" target="_blank">
707                            CommandNotFound</a>
708                    </div>
709                </div>
710            
711                <div class="w-50 float-left text-center mb-2">
712                    <div class="mx-2">
713                        <a class="text-info-a" style="text-decoration: none" href="http://jyywiki.cn/"
714                           title="南京大学蒋老师计算机基础课程讲义、视频等" target="_blank">
715                            NJU_JYY</a>
716                    </div>
717                </div>
718            
719                <div class="w-50 float-left text-center mb-2">
720                    <div class="mx-2">
721                        <a class="text-info-a" style="text-decoration: none" href=" https://mubwx.com"
722                           title="木本无心" target="_blank">
723                            木本无心</a>
724                    </div>
725                </div>
726            
727        </div>
728    </div>
729</div>
730
731<div class="card mb-3 mt-2">
732    <div class="card-header p-2 f-17">
733        <strong><i class="fa fa-paper-plane"></i> 云购优惠</strong>
734    </div>
735    <div class="card-body p-2 f-15">
736        <div class="row text-center">
737            <div class="col">
738                <a class="text-info-a" href="https://passport.ucloud.cn/?invitation_code=C1xC968B3780B59"
739                   target="_blank" title="ucloud云主机">
740                    <img style="max-width:40px" alt="ucloud云主机"
741                         src="/static//img/tg/ucloud-icon.png">
742                    <p class="mt-2">ucloud云</p>
743                </a>
744            </div>
745            <div class="col">
746                <a class="text-info-a"
747                   href="https://www.ucloud.cn/site/active/kuaijie.html?invitation_code=C1xC968B3780B59" target="_blank"
748                   title="ucloud云主机促销活动">
749                    <img style="max-width:40px" alt="ucloud云主机促销活动"
750                         src="/static//img/tg/ucloud-icon.png">
751                    <p class="mt-2">云主机促销</p>
752                </a>
753            </div>
754            <div class="col">
755                <a class="text-info-a"
756                   href="https://cloud.tencent.com/act/cps/redirect?redirect=33867&cps_key=fe0e7fca4790ebfb4c2f21565cdb3ce1&from=activity"
757                   target="_blank" title="腾讯云主机促销活动">
758                    <img style="max-width:40px" alt="腾讯云主机促销活动"
759                         src="/static//img/tg/ucloud-icon.png">
760                    <p class="mt-2">腾讯云促销</p>
761                </a>
762            </div>
763        </div>
764    </div>
765</div>
766<script src="/static/js/jquery.cookies.js"></script>
vendor: 1 bytes, line 766
766
767<script>
768    let theme = $.cookie('blog_theme');
769    // load slider infomation
770    $(function () {
771        $(document).ready(function () {
772            loadOne();
773            loadGithub();
774        });
775    })
776
777    // get one sentence and github repository information
778    function loadOne() {
779        var instance = $('#oneWord').scheletrone({
780            url: "/load-one/",
781        });
782
783
784    }
785
786    function loadGithub() {
787        let instance = $("#github-card").scheletrone({
788            url: '/load-github/',
789            method: 'post',
790            ajaxData: {'theme': theme}
791        })
792        /*$.ajax({
793            type: 'post',
794            url: '/load-github/',
795            data: {'theme': theme},
796            success: function (res) {
797                $(".f-hint").hide();
798                $("#shield-svg").append('<div class="mr-1">' + res.star + '</div>');
799                $("#shield-svg").append('<div class="mr-1">' + res.fork + '</div>');
800                $("#shield-svg").append('<div class="mr-1">' + res.watcher + '</div>');
801                $('#repoDesc').text(res.repo_desc);
802                $("#githubAvatar").attr('src', res.avatar);
803                $("#githubStar").attr('hidden', false);
804            }
805        })*/
806    }
807
808    var myChart = echarts.init(document.getElementById('contribute'));
809    myChart.on('click', function (params) {
810        window.open('https://2dogz.cn/');
811    })
812    $.ajax({
813        url: '/get-contribution/',
814        type: 'post',
815        success: function (response) {
816            generateCalendar(response);
817        }
818    })
819
820    function generateCalendar(data) {
821        let item0Color = null;
822        let bgColor = null;
823        let borderColor = null;
824        // define heat map theme with user theme
825        if (theme === 'light' || theme === undefined) {
826            item0Color = '#EBEDF0';
827            bgColor = '#ffffff';
828            borderColor = '#ffffff';
829        } else {
830            item0Color = '#444444';
831            bgColor = '#303030';
832            borderColor = '#303030';
833        }
834        let option = {
835            title: {
836                top: 30,
837                left: 'center',
838            },
839            tooltip: {
840                position: 'top',
841                backgroundColor: '#000000',
842                formatter: function (p) {
843                    let format = echarts.format.formatTime('yyyy-MM-dd', p.data[0]);
844                    return '<i class="fa fa-fire"></i> 在' + format + '有' + p.data[1] + '次活动';
845                }
846            },
847            visualMap: {
848                textStyle: {
849                    color: '#B9B8CE',
850                    fontFamily: 'sans-serif',
851                    fontSize: 12,
852                    fontStyle: 'normal',
853                    fontWeight: 'normal'
854                },
855                show: false,
856                min: 0,
857                max: 10,
858                type: 'piecewise',
859                pieces: [
860                    {
861                        gt: 10,
862                        color: '#2E6139',
863                        label: '>10'
864                    },
865                    {
866                        gt: 5,
867                        lte: 10,
868                        color: '#30A14E',
869                        label: '5-10'
870                    },
871                    {
872                        gt: 2,
873                        lte: 5,
874                        color: '#40C463',
875                        label: '2-5'
876                    },
877                    {
878                        gt: 0,
879                        lte: 2,
880                        color: '#9BE9A8',
881                        label: '0-2'
882                    },
883                    {
884                        value: 0,
885                        color: item0Color,
886                        label: '0'
887                    }
888                ]
889            },
890            calendar: [{
891                left: 80,
892                top: 20,
893                center: true,
894                range: [data.start, data.end],
895                splitLine: {
896                    show: false,
897                },
898                itemStyle: {
899                    color: bgColor,
900                    borderColor: borderColor,
901                    borderWidth: 3,
902                    borderType: 'solid',
903                },
904                cellSize: [15, 15]
905            }],
906            series: {
907                type: 'heatmap',
908                coordinateSystem: 'calendar',
909                data: data.data,
910                itemStyle: {
911                    color: '#aaeecc'
912                }
913            }
914        };
915        myChart.setOption(option);
916    }
917
918</script>
918
919                </div>
920            </div>
921        </div>
922    </main>
923
924
925    <footer class="container-fluid mt-4 py-0 bg-footer">
926        <div class="card-body text-center px-0 f-14">
927            <p class="card-text mb-1">Copyright&nbsp;©&nbsp;<span id="year-info">2020</span>
928                <a href="https://github.com/weijiang1994" class="text-decoration-none footer-a" target="_blank"
929                   title="博客作者的Github">Blogin</a>.&nbsp;Design&nbsp;by&nbsp;Flask1.01.
930            </p>
931            <p class="mb-0">
932                <a href="http://beian.miit.gov.cn/" class="text-decoration-none footer-a" target="_blank">湘ICP备2020018236号-1</a>&nbsp;<span
933                    id="web-day"> 网站已续航 900 天</span>
934            </p>
935            <p class="mb-0"><a href="/change-local/zh" class="text-decoration-none footer-a"><img
936                    src="/static/img/chinese.svg" alt=""></a> | <a
937                    class="text-decoration-none footer-a" href="/change-local/en"><img
938                    src="/static/img/english.svg" alt=""></a></p>
939            
939<script>
940                function getNewYear() {
941                    let d = new Date();
942                    let old = new Date('2020/08/28');
943                    let x = document.getElementById("year-info");
944                    x.innerHTML = d.getFullYear();
945                    let y = document.getElementById("web-day");
946                    let dd = Math.floor((d.getTime() - old.getTime()) / (24 * 3600 * 1000));
947                    let d_str = "| 网站已上线 " + dd + " 天";
948                    y.innerHTML = d_str;
949                }
950
951                getNewYear();
952            </script>
952
953        </div>
954    </footer>
955
956</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.