这是烧瓶文件。
from flask import render_template
from app import app
@app.route('/')
@app.route('/index')
def index():
user = {'nickname': 'Miguel'} # fake user
return render_template('index.html',title='Home',user=user)
这是哈巴狗文件:
doctype html
html(lang="en")
head
title pageTitle
if title
title {{ title }} - microblog
else if !title
title Welcome to microblog1
else
title Welcome to microblog2
body
h1 Hello, {{ user.nickname }}!
if {{ user.nickname }} == "Miguel"
h1 Miguel
这是 index.html 使用 Prepros 转换后的样子:
<!DOCTYPE html>
<html lang="en">
<head>
<title>pageTitle</title>
<title>Welcome to microblog1</title>
</head>
<body>
<h1>Hello, {{ user.nickname }}!</h1>
<h1>{{ user.nickname }}</h1>
<h1># user.nickname</h1>
</body>
</html>
我可以使用我的 PUG 文件从 FLASK 获取动态内容。因此脚本中的以下内容有效:
h1 Hello, {{ user.nickname }}!
输出是“你好,米格尔!”
但这部分不起作用。
if {{ user.nickname }} == "Miguel"
h1 Miguel
我收到一个语法错误:意外的令牌。所以我可以从 Flask 中获取名称,但我不能在 if 语句中使用它?我不确定我做错了什么,或者它是否不受支持。顺便说一句,我正在使用 Prepros(它给出错误)将我的 PUG 文件转换为 HTML。
可能相关的是,当我通过 Prepros 转换我的文件时,我并没有真正得到我期望的结果。
这是来自 PUG 文件:
title pageTitle
if title
h1 {{ title }}
else if !title
title Welcome to microblog1
在 html 中,我期望:
<title>pageTitle</title>
{% if title %}
<title>{{ title }}</title>
{% else if !title %}
<title> Welcome to microblog1
但我最终得到:
<title>pageTitle</title>
<title>Welcome to microblog1</title>
就好像 Prepros 在转换为 HTML 之前回答了 IF 语句。这意味着代码不是动态的。我对 PUG 和 FLASK 都是新手,所以我不确定在哪里可以找到解决方案。