阳明的博客

大家好,我叫阳明,前小米高级开发工程师,现在回到家乡成都,独立开发者一枚,一个有着产品思维的工程师,现在也在努力将自己的产品思维体系化,全栈工程师,现阶段专注 Kubernetes 和 AIGC,创建了「k8s技术圈」社区、「优点知识」知识付费网站以及「快课星球」AI全栈开发学习网站。我可以提供企业容器化方面的知识培训和咨询工作,感兴趣的可以通过微信 gitops 和我联系。

联系我:

阳明和他朋友们的一些项目

Nginx中如何设置301跳转

网站中带www和不带都可以访问,但是这样却会不利于网站SEO的,会分权,所以需要将二者的访问合并到一起,这特别在网站架设之初就应该好好规划。

有很多的第三方DNS解析服务,提供了直接的显示跳转的服务,比如dnspod,但是最近我在使用的过程中发现该服务非常的不稳定,导致网站经常性的访问不了。所以就打算自己来做,方法很简单,就是301跳转301是永久跳转302是临时性跳转

用python处理csv文件

CSV通常是纯文本文件。可以用Sublime Text或者EXCEL打开,python提供了一个非常强大的处理csv文件的库csv。

一般情况,如果csv文件不是很复杂则可以直接输出文件中每行的数据,代码如下:

import csv

def read_csv_file(path):
    with open(path, 'rb') as f:  # r表示读取,b表示读取的文件
        reader = csv.reader(f)
        for row in reader:
            print row
    f.close()

自定义django admin后台的action

提到强大的django,最能引起大家共鸣的可能是其自带的admin了,提供了默认的强大的功能,而且我们还能根据自己的需求进行定制。django admin的列表页自带了一个批量删除所选对象的action,我们还可以添加自定义的功能action来实现其他功能,比如批量标记将文章标记为已发布。如下代码:

django下url函数的用法

Django下有一个比较隐含的函数url,在django/conf/urls/defaults模块中,虽然只有短短的10行代码,但功能却很了得。起初初学Django,并没有发现它,Templates的链接地址都是根据urlpatterns定义的地址,拼凑成地址字符串,很难看,而且Templates里拼凑成的地址,随着页面的增加而不断增加,一旦在urlpatterns里的某个地址改变了名称,那眼泪可是哗哗的,有多少的拼凑的地址就得改动多少处!这时发现了url函数,这下可都好了,不管urlpatterns里的某个地址叫法怎么改变,Templates里的地址都不用修改了。

比如没有采用url函数的时候:urlpatterns里定义了资讯的首页地址,

urlpatterns = patterns('',
    (r'^article$','news_index' ),
)

django国际化问题

最近准备用用django的国际化功能,用的django1.6.5版本,按照网上说的教程始终不生效,最终只能去看官方文档,不得不说还是官方文档靠谱啊,下面记录了下django1.6+启用国际化的相关步骤。

Memcached的一些坑!!!

我们的网站用django跑了很久了,一直没出现什么大的问题,突然一天晚上网站访问超级慢,出现大量的502错误码,难不成用户量猛增么,要是这样就好了。请教了很多运维高手帮忙排查问题、代码也回滚到上一个正常运行的版本了,但依然负载一会高一会低。

捣腾了一天,最后定位到我们的代码有问题,有几个经常访问的API缓存了15分钟,经过分析发现其中一个API始终缓存不上,但在本地和测试环境都是没有问题的,这真是搞死人啊。后面发现这个API的请求的数据非常之大,接近2M了。而Memcache有很多限制,其中就有value值大小的限制,终于找到问题了,泪牛满面啊……