一个python函数抵消了其他

时间:2018-07-15 11:40:08

标签: python flask jinja2

我对Python还是很陌生,的确,我将不得不花更多的时间来学习它。到目前为止,我正在使用Python,Jinja2,Flask和SASS创建投资组合。通常,我目前正在关注CS50教程,并正在修改其代码以适合我的需求。

我不完全理解它们的语法,但是我对函数的熟悉以及对文档的阅读帮助我创建了第一个很酷的函数:这​​花费了我的本地时间,并且取决于一个小时,它会适当地打招呼(通过HTML插入html jinja2)。

我现在想通过通过数组的jinja2元素应用来创建无序列表。这是我的.py的完整代码:

from flask import Flask, render_template, flash, redirect, request, url_for
from datetime import datetime

app = Flask(__name__)

@app.route("/")
def index():
time = datetime.now().time()
if time.hour > (0) and time.hour < (12):
    headline1 = "Good morning,  !"
    return render_template("index.html", headline1=headline1)
elif time.hour >= (12) and time.hour < (18):
    headline2 = "Good afternoon,  !"
    return render_template("index.html", headline2=headline2)
else:
    headline3 = "Good evening,  !"
    return render_template("index.html", headline3=headline3)

def nav():
names = ["Home", "About me", "Projects", "Hobby"]
return render_template("index.html", names=names)

和带有Jinja2的HTML:

<body>
{% if headline1 %}
<H2>{{ headline1 }}</H2>
{% elif headline2 %}
<H2>{{ headline2 }}</H2>
{% else %}
<H2>{{ headline3 }}</H2>
{% endif %}
<ul>
{% for name in names %}
<li>{{ name }}</li>
{% endfor %}
</ul>
</body>

首先使用哪个功能,它是唯一的工作功能。我以第二个为准,将其丢弃。

很抱歉,这是菜鸟的问题,但是我在做什么错呢?这两个功能都是合法的,但是似乎存在一个功能抵消另一个功能的问题。我知道我有很多东西要学,但是您的回答将在很大程度上帮助我。预先感谢!

1 个答案:

答案 0 :(得分:0)

FWIW:使用所有不同的标题变量毫无意义,这可以做到。您的nav函数未绑定到URL,因此不会被调用。

app = Flask(__name__, template_folder='template')
names = ["Home", "About me", "Projects", "Hobby"]

@app.route("/")
def index():
  time = datetime.now().time()
  if time.hour > 0 and time.hour < 12:
    headline = "Good morning,  !"
  elif time.hour >= 12 and time.hour < 18:
    headline = "Good afternoon,  !"
  else:
    headline = "Good evening,  !"
  return render_template("index.html", headline=headline, names=names)

和带有Jinja2的HTML:

<body>
{% if headline %}
<H2>{{ headline}}</H2>
{% endif %}
<ul>
{% for name in names %}
<li>{{ name }}</li>
{% endfor %}
</ul>
</body>