1. 程式人生 > >重新撿起flask(五)

重新撿起flask(五)

render get script return handler end date pos 看書

又想蹭點東西了...

這裏主要是想來復習一下jinja2模板的一些內容。

之前其實很快的過了jinja2裏面寫一些if或for控制語句的東西。

真到現在想直接寫一些,卻有些忘了,如果你也忘了,我們一起來回憶一些吧。

{% if bool_var %}

  {{ some_func() }}

{% else %}

  ouch

{% endif %}

上面是默寫的,也不知道是不是對的。我仿著思路再寫一下for的吧。

{% for i in is %}

  {{ some_func() }}

{% endfor %}

{% while bool_var %}

  {{ some_func() }}

{% endwhile %}

不記得有沒有while了,我現在來看書確認一下。

while狗書上每說,估計是沒有的。

其實我們看到jinja2裏面的一些規則也算直接。

jinja2自己提供的模板語句,用{% %}

你引用的變量或著函數,用{{ }}抱起來。

其他就寫成html就好了。

說到這裏,再做了一個小彩蛋的測試,假設把狗書裏的一個去掉,詳見下方test函數代碼的註釋。

from flask import Flask, render_template
from flask import request
# from flask_script import Manager
from flask_bootstrap import
Bootstrap from flask_moment import Moment from datetime import datetime from flask_wtf import Form from wtforms import StringField, SubmitField from wtforms.validators import Required class NameForm(Form): name = StringField("你是什麽名字?", validators=[Required()]) submit = SubmitField("提交") app
= Flask(__name__) app.config["SECRET_KEY"] = "my_flasky" bootstap = Bootstrap(app) moment = Moment(app) # manager = Manager(app) @app.route("/") def index(): return render_template("index.html", current_time = datetime.now()) @app.route("/user/<name>") def user(name): return render_template("user.html", name = name) @app.errorhandler(404) def page_not_found(e): return render_template(404.html), 404 @app.errorhandler(500) def page_not_found(e): return render_template(500.html), 404 @app.route("/test", methods=[GET, POST]) def test(): name = None form = NameForm() if form.validate_on_submit(): name = form.name.data # form.name.data = "" return render_template("test.html", form=form, name=name) if __name__ == "__main__": app.run(debug=True)

會出現什麽樣的結果呢?

這個其實和白胡子叔叔講ios第一課裏面的那個問題很像。不過兩者解決思路是不同的。

我也是剛剛想到這兩個問題真的很像....

重新撿起flask(五)