Включения не поддерживаются напрямую в YAML, насколько я знаю, вам придется самостоятельно создать механизм, однако, как правило, это легко сделать.
Я использовал YAML в качестве языка конфигурации в своих приложениях на Python, и в этом случае часто определяю такое соглашение:
>>> main.yml <<<
includes: [ wibble.yml, wobble.yml]
Затем в своем (Python) коде я делаю:
import yaml
cfg = yaml.load(open("main.yml"))
for inc in cfg.get("includes", []):
cfg.update(yaml.load(open(inc)))
Единственным недостатком является то, что переменные во включениях всегда будут переопределять переменные в main, и нет никакого способа изменить этот приоритет, изменив место, где в файле main.yml присутствует оператор "includes:" .
В несколько ином аспекте, YAML не поддерживает включения, поскольку они на самом деле не спроектированы так, как исключительно разметка на основе файлов. Что будет означать включение, если вы получите его в ответ на запрос AJAX? ?
import subprocess
def php(script_path):
p = subprocess.Popen(['php', script_path], stdout=subprocess.PIPE)
result = p.communicate()[0]
return result
# YOUR CODE BELOW:
page_html = "<h1>News and Updates</h1>"
news_script_output = php("news-generator.php")
print page_html + news_script_output
PHP - это программа. Вы можете запустить любую программу с подпроцессом .
Самая сложная часть - это моделирование всей среды CGI, которую ожидает PHP.
, возможно, не по теме, но если вы хотите сделать это таким образом, чтобы вы могли получить доступ к переменным и тому подобному, созданным сценарием php (например, массиву новостей), все будет лучше. должен выполнять exec php-скрипта, но возвращать json-кодированный массив элементов из php в виде строки, затем json декодирует их на стороне python и выполняет генерацию и итерацию html там.
Я думаю, что лучшим ответом было бы, чтобы apache отображал обе страницы отдельно, а затем использовал javascript для загрузки этой страницы в div. У вас есть небольшое замедление загрузки ajax, но тогда вам не нужно об этом беспокоиться.
Есть виджет с открытым исходным кодом, который будет запускать несколько языков на одной странице, но я не могу вспомнить, как он называется.
Вы можете использовать urllib, чтобы получить страницу с сервера (localhost) и запустить ее в подходящей для php среде. Не очень красиво, но это сработает. Если вы будете делать это часто, это может вызвать проблемы с производительностью.