重新捡起flask
Posted onhacker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重新捡起flask相关的知识,希望对你有一定的参考价值。
又想蹭点东西了...
这里主要是想来复习一下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的主要内容,如果未能解决你的问题,请参考以下文章