最基本的应用
一个最基本的Flask的应用就是这个样子,然后
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
调试模式
调试模式
虽然 run() 方法适用于启动本地的开发服务器,但是你每次修改代码后都要手动重启它。这样并不够优雅,而且 Flask 可以做到更好。如果你启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。
有两种途径来启用调试模式。一种是直接在应用对象上设置:
app.debug = True
app.run()
另一种是作为 run 方法的一个参数传入
app.run(debug=True)
路由
Route()的装饰器会把一个函数绑定到URL上,URL就是他的参数
上个例子
Flask视图函数的默认HTTP返回码是200,是作为第二个返回值.如果返回值作为400状态吗,请求就是无效的.
然后还可以返回第三个参数,这是一个由首部(header)组成的字典,可以加到HTTP的相应中去.make_response()函数可以接受1,2,3个参数,然后返回一个Response对象.比如设置一个cookie:
重定向和特殊的相应
当重定向的时候,指向的Location首部提供,重定向相应可以使用3个值形式的返.回值生成,也可在Response对象中设定,如果频繁使用就可以使用redirect()辅助函数,用于生成这种相应:
用 Python 生成 HTML十分无趣,而且相当繁琐,因为你必须手动对 HTML 做转义来保证应用的安全。为此,Flask 配备了 Jinja2 模板引擎。
Flask 会在 templates文件夹里寻找模板。所以,如果你的应用是个模块,这个文件夹应该与模块同级;如果它是一个包,那么这个文件夹作为包的子目录:
这两种情况都可以
情况 1: 模块:
/application.py
/templates
/hello.html
情况 2: 包:
/application
/__init__.py
/templates
/hello.html
举个例子 , 写好了 index.html 和 user.html 之后
render_template函数把jinja2模板中的引擎集成到程序中,其中的第一个参数是模板名,后面的参数都是键值对形式,name1 = name中的,左边的表示模板中使用的占位符,name是当前作用域中的变量,表示参数的值.
在使用的过程中可以是使用过滤器标志为安全的,浏览器能显示但是不解释.
* safe 过滤器在模板中把它标记为安全的 *
模板的继承
模板继承允许你创建一个基础的骨架模板,这个模板包含您网站的通用元素,并且定义子模板可以重载的 blocks 。