Fabric用于发布和执行一些系统管理任务,非常方便。

目前[学习笔记](用于发布的脚本如下,很方便。

1
2
3
4
5
6
7
8
9
10
11
12

from fabric.api import *
env.hosts = ['43.242.128.158']
env.user = 'dengsl'
def deploy():
code_dir = '/home/dengsl/program/nodejs/blog'
with cd(code_dir):
run("git pull")
#deploy static site
run("hexo clean")
run("hexo g")
run("cp -r public/* /home/dengsl/program/html/blog/note")

联系作者

Middleware相当于Django的底层插件,用于改变Django的输入和输出。最近遇到一个问题是有一些Android无法显示HTTPS页面中夹带的HTTP图片, 于是想到在返回结果中修改,于是想到Middleware.

编写一个Middleware也比较简单,根据需求定义响应的hook方法就好。这里定义如下

1
2
3
4
5
6
7
class StaticPathFilter(object):

def process_response(self, request, response):
if not response.streaming:
if request.scheme == 'https':
response.content = re.sub(r"http://static.eyaos.com", r"https://static.eyaos.com", response.content)
return response

我这里是StaticPathFilter放在apps.common.middleware模块里, 把’apps.common.middleware.StaticPathFilter’添加到MIDDLEWARE_CLASSES即可。

联系作者