本文整理匯總了Python中jinja2.Template.blocks["vhostm_hosts"]方法的典型用法代碼示例。如果您正苦於以下問題:Python Template.blocks["vhostm_hosts"]方法的具體用法?Python Template.blocks["vhostm_hosts"]怎麽用?Python Template.blocks["vhostm_hosts"]使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類jinja2.Template
的用法示例。
在下文中一共展示了Template.blocks["vhostm_hosts"]方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: vhostm_gen
# 需要導入模塊: from jinja2 import Template [as 別名]
# 或者: from jinja2.Template import blocks["vhostm_hosts"] [as 別名]
def vhostm_gen(config):
try:
with open(config.vhosts_file, "r") as f:
vhosts = json.load(f)
except:
vhosts = {"vhosts": []}
hosts_file = ""
try:
with open(config.hosts_file) as f:
hosts_file = f.read()
except FileNotFoundError:
pass
hosts = ""
for vhost_str in vhosts["vhosts"]:
vhost = Vhost.read(vhost_str)
hosts += "{}\t{}\n".format(vhost.address, vhost.domain)
# Write nginx config file
with open(join(config.nginx_conf_dir, vhost.domain), "w+") as f:
template = Template(config.nginx_template)
f.write(template.render(domain=vhost.domain,
port=vhost.port,
address=vhost.address,
static_root=vhost.static_root))
with open(config.hosts_file, "w+") as f:
if "#{%block vhostm_hosts%}\n" not in hosts_file:
hosts_file += "\n#{%block vhostm_hosts%}\n#{%endblock%}\n"
template = Template(hosts_file)
def swap_vhostm_hosts(*args, **kwargs):
yield "\n#{%block vhostm_hosts%}\n" + hosts + "#{%endblock%}\n"
template.blocks["vhostm_hosts"] = swap_vhostm_hosts
hosts_file = template.render()
f.write(hosts_file)
assert(subprocess.call(["nginx", "-t"]) == 0)
assert(subprocess.call(["service", "nginx", "reload"]) == 0)