年度归档:2018年

《Flask 入门教程》第 5 章:数据库

大部分程序都需要保存数据,所以不可避免要使用数据库。用来操作数据库的数据库管理系统(DBMS)有很多选择,对于不同类型的程序,不同的使用场景,都会有不同的选择。在这个教程中,我们选择了属于关系型数据库管理系统(RDBMS)的 SQLite,它基于文件,不需要单独启动数据库服务器,适合在开发时使用,或是在数据库操作简单、访问量低的程序中使用。  [...] 

《Flask 入门教程》第 3 章:模板

在一般的 Web 程序里,访问一个地址通常会返回一个包含各类信息的 HTML 页面。因为我们的程序是动态的,页面中的某些信息需要根据不同的情况来进行调整,比如对登录和未登录用户显示不同的信息,所以页面需要在用户访问时根据程序逻辑动态生成。  [...] 

再见,新浪微博!

从今年上半年注册新浪微博以来,频繁出现“被点赞”的情况,赞的微博都是各种各样的营销内容。每一次都要一个一个的取消点赞,有的微博已经删除还无法取消,试了修改密码等方式均无效。不知道这些“被点赞”的微博会不会被关注我的朋友们看到,如果会出现在时间线上,那实在抱歉了。谢谢各位朋友的关注和支持,顺便还要说声再见,因为我已经决定不再用它了。  [...] 

让 CKEditor 图片响应式(responsive)

通过 CKEditor 上传并插入图片后,CKEditor 的图片部件(widget)会在图片的 <img> 元素里插入行内样式定义来设置图片的宽高,这会导致响应式布局失效:图片因为被固定了宽高,在窗口缩小后会超出外层元素。生成的 HTML 代码示例如下:  [...] 

在 Flask 程序中实现 CKEditor 图片上传和 CSRF 保护

《Flask Web 开发实战》第 2 个实战项目是一个博客(Bluelog),这个项目本来没有添加图片上传支持,很多人想要自己实现,结果因为项目中同时使用了 CSRFProtect 扩展,它会默认验证所有 POST 请求,进而导致上传图片的请求出错。反馈的人多了,我就做了一些事情来改善这个问题:  [...] 

李辉

2018年12月8日

如果你是 Windows + Python 2.7 用户,可以升级 python-dotenv 至三天前发布的 0.10.0 版本,这样可以解决运行 Flask 程序出现的 TypeError: environment can only contain strings 异常(#101 最终被合并了)。

另外,最近所有示例程序完成了一次全面的更新(多个 bug 修复,项目依赖升级)。请按照前言“使用示例程序”部分更新所有源码仓库,然后重新执行一次 pipenv install,这会一并更新 python-dotenv 版本。如果不方便访问 GitHub,可以点击链接(http://helloflask.com/downloads/helloflask-projects.zip)下载最新的全部源码打包文件。

几个月过去,这个问题终于有了合理的解决方案。