摘要:
一个好的应用目录结构可以方便代码的管理和维护,一个好的应用管理维护方式也可以强化程序的可扩展性 应用目录结构 假定我们的应用主目录是”flask-demo”,首先我们建议每个应用都放在一个独立的包下,假设包名是”myapp”。所以,整个应用的目录结构如下: 应用的创建代码放在”myapp/__ini 阅读全文
摘要:
蓝图使用起来就像应用当中的子应用一样,可以有自己的模板,静态目录,有自己的视图函数和URL规则,蓝图之间互相不影响。但是它们又属于应用中,可以共享应用的配置。对于大型应用来说,我们可以通过添加蓝图来扩展应用功能,而不至于影响原来的程序。不过有一点要注意,目前Flask蓝图的注册是静态的,不支持可插拔 阅读全文
摘要:
当我们要往客户端发送大量的数据比较好的方式是使用流,通过流的方式来将响应内容发送给客户端,实现文件的上传功能,以及如何获取上传后的文件。 响应流的生成 Flask响应流的实现原理就是通过Python的生成器,也就是大家所熟知的yield的表达式,将yield的内容直接发送到客户端。下面就是一个简单的 阅读全文
摘要:
web服务器的工作过程 案例 tornado.httpserver:这个模块就是用来解决 web 服务器的 http 协议问题,它提供了不少属性方法,实现客户端和服务器端的互通。Tornado 的非阻塞、单线程的特点在这个模块中体现。 tornado.ioloop:这个也非常重要,能够实现非阻塞 s 阅读全文
摘要:
信号(Signal)就是两个独立的模块用来传递消息的方式,它有一个消息的发送者Sender,还有一个消息的订阅者Subscriber。信号的存在使得模块之间可以摆脱互相调用的模式,也就是解耦合。发送者无需知道谁会接收消息,接收者也可自由选择订阅何种消息 Flask的信号功能是基于Python消息分发 阅读全文
摘要:
写个验证用户登录的装饰器:在调用函数前,先检查session里有没有用户 需将此装饰器加在每个需要验证登录的请求方法上即可 URL集中映射 Flask也支持像Django一样,把URL路由规则统一管理,而不是写在视图函数上 我们先来写个视图函数,将它放在一个”views.py”文件中: 然后在Fla 阅读全文
摘要:
内置全局函数 dict()函数,方便生成字典型变量 joiner()函数,神奇的辅助函数。它可以初始化为一个分隔符,然后第一次调用时返回空字符串,以后再调用则返回分隔符。对分隔循环中的内容很有帮助 cycler()函数,在给定的序列中轮循,列表项<li>的”class”在”odd”和”even”两个 阅读全文
摘要:
安装MongoDB 启动数据库:安装完成指定数据库存放路径 mongod.exe --dbpath c:\data\db进入目录后运行mongo.exe 成功 创建数据库 db 指向了数据库 mydb,books 是这个数据库里面的一个集合(类似 mysql 里面的表),向集合 books 里面插入 阅读全文
摘要:
会话session ,允许你在不同请求 之间储存信息。这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它。 这里用到的 escape() 是用来转义的。如果不使用模板引擎就可以像上例 一样使用这个函数来转义。 利用系统生成一个好的密匙 基 阅读全文
摘要:
upload.html show.html 文件上传 HTML 表单中设置 enctype="multipart/form-data" 属性,已上传的文件被储存在内存或文件系统的临时位置。你可以通过请求对象 files 属性来访问上传的文件。每个上传的文件都储存在这个 字典型属性中。这个属性基本和标 阅读全文