重新撿起flask(五)
阿新 • • 發佈:2017-11-25
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 importBootstrap 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(五)