路由
客户端(例如Web服务器)将请求发送给Web服务器,Web服务器再把请求发送给Falsk程序实例。程序实例需要知道对每个URL请求运行代码,所以保存了一个URL到python函数的映射关系。处理URL和函数之间关系的程序称为路由。
在Flask程序中定义路由:使用程序实例提供的appp.route修饰器,把修饰的函数注册为路由。 index()函数注册成为程序根地址的处理程序。如果部署程序的服务器域名为www.example.com,在浏览器中访问http://www.example.com后,会触发服务器执行index()函数。这个函数的返回值称为响应,是客户端接受到的内容。如果客户端是web服务器,相应就是显示给用户查看的文档。
像index()函数即称为视图函数。其相应可以包含HTML简单的字符串,也可以是复杂的表单。
修饰器是python语言的特性,可以使用不同的方式修改函数的行为。惯用法是使用修饰器把函数注册为事件的处理程序
动态路由 如果你仔细观察日常所有服务的某些URL格式,就会发现,很多地址都包含可变部分。 尖括号的内容即为动态部分,任何能匹配静态部分的URL都会映射到这个路由上。调用视图函数时,路由器会将动态部分作为参数传入函数。
Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才可以处理请求。请求对象是一个很好的例子,他封装了客户端发送的http请求。
flask被设计成可扩展模式,因此没有提供一些重要的功能,例如数据库和用户认证,所以开发者可以自由地选择最适合程序地包,或者按照需求自行开发。
使用Flask-Script支持命令行选项 Flask的开发Web支持很多启动设置选项,但是只能在脚本中作为参数传递给app.run()函数。这种方式并不十分方便,传递参数最理想的方式是使用命令行参数。(这里有点不太懂)
形式最简单的Jinja2模板就是一个包含响应文本的文件。在templates中有哦。
默认情况下,Flask会在程序文件夹中的templatcs子文件夹中寻找模板。
在第二章介绍的请求对象包含客户端发出的所有请求信息。其中,request.from能够获取用户Post请求中的提交的表单数据。
尽管Flask的请求对象提供的信息足够用于处理Web表单,但是有些任务很单调,而且要重复操作。蔽日生成表单的HTML代码和验证提交的表单数据。
默认情况下,flask-wtf能够保护所有表单免受跨站请求伪造的攻击。 为了实现跨站请求伪造保护,flask-wtf需要程序设置一个密匙,flask-wtf使用这个密匙生成加密令牌,再用令牌验证请求中的表单数据的真伪。