Я создаю простое веб-приложение с Python и web.py. Моя текущая задача - взять все запросы vars (web.input()
) и задать объект JavaScript в шаблоне HTML. Тем не менее, я не знаю, как обеспечить, чтобы это получилось ОК, а не длинной строкой с кодировкой.Python webapp для установки всех запросов к объекту js
Спасибо, миллион!
У меня есть следующий код в app.py
, шаблон HTML и содержимого HTML:
app.py
:
import web
urls = (
'/hello', 'hello',
'/bye/', 'bye'
)
app = web.application(urls, globals(), autoreload=True)
#test = "testwaarde"
test = web.input()
render = web.template.render('templates/', base='layout')
class hello:
def GET(self):
return render.index("Templates demo",test, "Hello", "A long time ago...")
class bye:
def GET(self):
return render.hell_form("Templates demo",test, "Bye", "14", "8", "25", "42", "19")
if __name__ == "__main__":
app.run()
Шаблон:
$def with (page)
<html>
<head>
<title>$page.title</title>
<!-- Digital Data Layer -->
<script>
\t var test = "{{$page.path}}"
var digitalData = {
'page':{
\t 'path': '$page.path'
}
};
</script>
</head>
<body>
<p>You are visiting page <b>$page.name</b>.</p>
$:page
</body>
</html>
индекс HTML:
$def with (title, **path,name, content)
$var title:$title
$var name:$name
$var path:$path
<p>$content</p>
Спасибо @Peter, это очень помогает! однако результат, который я получаю, по-прежнему содержит Есть ли простой способ избавиться от этого? Очень признателен! –
Arjen
Несомненно. Класс '' '' '' происходит от python dict. Пока ваш объект не является сложным (и web.input() не является сложным), просто добавьте его в dict: 'foo = dict (web.input())'. Затем в вашем шаблоне значение '$: foo' будет использоваться как json в коде javascript:' var my_json = $: foo; ' –
pbuck