當前位置: 首頁>>代碼示例>>Python>>正文


Python Template.blocks["vhostm_hosts"]方法代碼示例

本文整理匯總了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)
開發者ID:bysslord,項目名稱:vhostm,代碼行數:46,代碼來源:vhostm.py


注:本文中的jinja2.Template.blocks["vhostm_hosts"]方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。