随笔分类 -  Flask Web开发

摘要:总的来说,部署遇到了许多坑,而且还有好多坑还没有踩。 去Cocode找了许多教程,才踩了一些坑,但是关于数据库的坑,先留着。 所有的db.session.add()后面都加上db.session.commit()才行。记得,这是狗书的问题!!! [部署教程]http://cocode.cc/t/fl 阅读全文
posted @ 2017-04-25 09:31 Cheko 阅读(99) 评论(0) 推荐(0)
摘要:测试 编写单元测试主要有两个目的。实现新功能时,单元测试能够确保新添加的代码按预期方式运行。 Flask测试客户端 程序的某些代码严重依赖运行中的程序所创建的环境。视图程序只能在请求上下文和运行中的程序里运行。 Flask內建了一个测试客户端用于解决这一问题。它能复现程序运行在Web服务器中的环境, 阅读全文
posted @ 2017-04-23 10:29 Cheko 阅读(103) 评论(0) 推荐(0)
摘要:应用编程接口 业务逻辑被越来越多的移到了客户端一侧,开创出一种称为富互联网应用(Rich Internet Application, RIA) 在RIA中,服务器主要功能是为客户端提供数据存储服务。 在这种模式下,服务器变成了Web服务器或应用编程接口(Application Progamming 阅读全文
posted @ 2017-04-20 14:47 Cheko 阅读(188) 评论(0) 推荐(0)
摘要:关注者 解决多对多:添加第三张表,为关联表。 db.backref()参数并不是指定这两个关系之间的引用关系,而是回引Follow模型。 回引的lazy参数指定为joined.这个lazy模式可以实现立即从联结查询中加载相关对象。 如果选为select,那么首次访问follower和followed 阅读全文
posted @ 2017-04-16 15:09 Cheko 阅读(109) 评论(0) 推荐(0)
摘要:博客文章 本章实现主要功能,允许用户阅读、撰写博客文章。 重用模板,分页显示长列表、处理富文本。 current_user由Flask Login提供,和所有上下文变量一样,也是通过 线程内的代理对象实现。这个对象的表现类似用户对象,但实际上却是一个轻度包装,包含真正的用户对象。 数据库需要真正的用 阅读全文
posted @ 2017-04-13 09:41 Cheko 阅读(128) 评论(0) 推荐(0)
摘要:用户资料 WTForms对HTML表单控件进行SelectField进行包装,实现下拉列表,用来在这个表单中选择用户角色。 SelectField 实例必须在 __choices__ 属性中设置各选项 用户头像 Gravatar是一个行业领先的头像服务,能把头像和电子邮件关联起来。 生成的头像URL 阅读全文
posted @ 2017-04-11 15:59 Cheko 阅读(105) 评论(0) 推荐(0)
摘要:用户角色 def insert_roles(): roles = { 'User': (Permission.FOLLOW | Permission.COMMENT | Permission.WRITE_ARTICLES, True), 'Moderator': (Permission.FOLLOW 阅读全文
posted @ 2017-04-10 14:47 Cheko 阅读(169) 评论(0) 推荐(0)
摘要:用户认证 用户连接程序后会进行身份认证,让程序知道用户身份,提供有针对性的体验。 认证扩展 Flask Login 管理已登录用户的用户会话 Werkzeug 计算密码散列值并进行核对 itsdangerous 生成并核对加密安全令牌 Flask Mail 发送与认证相关的电子邮件 Flask Bo 阅读全文
posted @ 2017-04-10 09:22 Cheko 阅读(252) 评论(0) 推荐(0)
摘要:大型程序的结构 项目结构 Flask程序一般都保存在名为app的包中 migrations文件夹包含数据库迁移脚本 单元测试编写在tests包中 venv文件包含Python虚拟环境 requirements.txt列出了所有依赖包,便于在其他电脑中重新生成相同的虚拟环境 config.py存储配置 阅读全文
posted @ 2017-04-07 16:39 Cheko 阅读(424) 评论(0) 推荐(0)
摘要:电子邮件 Flask Mail Flask Mail提供电子邮件支持,Flask Mail连接到简单邮件传输协议(Simple Mail Transfer Protocol, SMTP)服务器,并 把邮件交给这个服务器发送。如果不配置,它会连接localhost上的端口25,无需验证即可发送电子邮件 阅读全文
posted @ 2017-03-31 17:25 Cheko 阅读(119) 评论(0) 推荐(0)
摘要:数据库 数据库按照一定的规则保存程序数据,程序再发起查询取回所需的数据。Web程序最常用基于关系模型的 数据库,这种数据库也称为SQL数据库。因为它们使用结构化查询语言。近几年流行 __文档数据库__ 和 __键值对数据库__成了最流行戴尔替代选择,这两种数据库合称NoSQL数据库。 NoSQL数据 阅读全文
posted @ 2017-03-31 11:07 Cheko 阅读(286) 评论(0) 推荐(0)
摘要:Web表单 request.form能获取POST请求中提交的表单数据。 __Flask WTF__ 可以把处理Web表单的过程变成一种愉悦的体验。 跨站请求伪造保护 默认情况下,Flask WTF能保护所有表单免受跨站请求伪造的攻击。 恶意网站把请求发送到被攻击者已登录的其他网站时就会引发CSRF 阅读全文
posted @ 2017-03-30 15:06 Cheko 阅读(310) 评论(0) 推荐(0)
摘要:模板 视图函数的作用:生成请求的响应 业务逻辑、表现逻辑 把表现逻辑移到模板中能够提升程序的可维护性。 模板是一个包含响应文本的文件,包含用占位变量表示的动态部分,具体指爱请求的上下文才知道。 使用真实值替代变量,再返回最终得到的响应字符串,这一过程称为 __渲染__ Jinja2模板引擎 Flas 阅读全文
posted @ 2017-03-30 09:15 Cheko 阅读(192) 评论(0) 推荐(0)
摘要:初始化 所有的Flask都必须创建一个程序实例,是Flask类的对象 Web服务器使用一种名为Web服务器网关接口(Web Server Gateway Interface, WSGI)的协议, 把接收自客户端的所有请求都转交给这个对象处理。 from flask import Flask app 阅读全文
posted @ 2017-03-29 10:36 Cheko 阅读(192) 评论(0) 推荐(0)
摘要:Flask Flask是一个小型框架 Flask两个依赖: 路由、调试和Web服务器网关接口(Web Server GateWay Interface, WSGI) 子系统由Werkzeug提供,模板系统由Jinja2提供。Werkzeug和Jinja2都由核心开发者开发而成。 虚拟环境: pyth 阅读全文
posted @ 2017-03-28 11:22 Cheko 阅读(181) 评论(0) 推荐(0)