摘要:
在新版hello.py 中,视图函数index() 不仅要渲染表单,还要接收表单中的数据。更新后的index() 视图函数如下: app.route 修饰器中添加的methods 参数告诉Flask 在URL 映射中把这个视图函数注册为GET 和POST 请求的处理程序。如果没指定methods 参 阅读全文
摘要:
最新版的hello.py 存在一个可用性问题。用户输入名字后提交表单,然后点击浏览器的刷新按钮,会看到一个莫名其妙的警告,要求在再次提交表单之前进行确认。之所以出现这种情况,是因为刷新页面时浏览器会重新发送之前已经发送过的最后一个请求。如果这个请求是一个包含表单数据的POST 请求,刷新页面后会再次 阅读全文
摘要:
默认情况下,Flask-WTF 能保护所有表单免受跨站请求伪造(Cross-Site Request Forgery,CSRF)的攻击。恶意网站把请求发送到被攻击者已登录的其他网站时就会引发CSRF 攻击。 为了实现CSRF 保护,Flask-WTF 需要程序设置一个密钥。Flask-WTF 使用这 阅读全文
摘要:
表单字段是可调用的,在模板中调用后会渲染成HTML。假设视图函数把一个NameForm 实例通过参数form 传入模板,在模板中可以生成一个简单的表单,如下所示: 当然,这个表单还很简陋。要想改进表单的外观,可以把参数传入渲染字段的函数,传入的参数会被转换成字段的HTML 属性。例如,可以为字段指定 阅读全文
摘要:
Flask请求对象包含客户端发出的所有请求信息。其中,request.form 能获取POST 请求中提交的表单数据。尽管Flask 的请求对象提供的信息足够用于处理Web 表单,但有些任务很单调,而且要重复操作。比如,生成表单的HTML 代码和验证提交的表单数据。Flask-WTF(http:// 阅读全文
摘要:
Moment.js 是一个简单易用的轻量级JavaScript日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和NodeJS两种环境中运行。此类库能够 将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。Flask-Moment是一个集 阅读全文
摘要:
Web 程序不是仅由Python 代码和模板组成。大多数程序还会使用静态文件,例如HTML代码中引用的图片、JavaScript 源码文件和CSS。 在前面的章节中,我们曾检查hello.py 程序的URL 映射时,其中有一个static 路由。这是因为对静态文件的引用被当成一个特殊的路由,即/st 阅读全文
摘要:
在Web开发中,任何具有多个路由的程序都需要可以连接不同页面的链接,例如导航条。 在模板中直接编写简单路由的URL 链接不难,但对于包含可变部分的动态路由,在模板中构建正确的URL 就很困难。而且,直接编写URL 会对代码中定义的路由产生不必要的依赖关系。如果重新定义路由,模板中的链接可能会失效。 阅读全文