在前面一讲中我们学习如何创建一个简单的Flask项目,并做了一些简单的分析.接下来在这一节中就主要来讲讲Flask中最核心的内容之一:Werkzeug工具箱.Werkzeug是一个遵循WSGI协议的Python函数库.WSGI协议在前面的文章中也有提到(点我查看).那Werkzeug有什么作用呢?它其实实现了很多底层的东西,如Request.Response和集成URL请求路由等. 一.Werkzeug的组成: 二.routing模块 routing模块的主要目的是负责实现URL解析.不同的UR…
因为Flask框架的集成度很低,随着Flask项目文件的增多,会导致不太好管理.但如果对一个项目进行模块化管理的,那样子管理起来就会特别方便.而在Flask中刚好就提供了这么一个特别好用的工具蓝图(Blueprint).在进行团队开发时,为了保证我们写的代码更加稳定,一般需要进行单元测试.该如何进行单元测试呢? 一.Blueprint 1.什么是蓝图 可以把蓝图当做一个存储视图的容器,被蓝图装饰过的函数,会被保存起来,然后把这个蓝图注册到项目中的APP之后就被蓝图装饰的函数可以使用了. 蓝图的作…
Flask框架是一个扩展性非常强的框架,所以导致它有非常多的扩展包.这些扩展包的功能都很强大.本节主要汇总一些常用的扩展包. 一. Flask-Script pip install flask-script 作用: 1. 可以让我们通过命令行的方式启动服务器,还可以手动指定参数,如ip,port. python hello.py runserver -h 127.0.0.1 -p 6666 2. 结合Flask-Migration扩展包可以实现对数据的迁移 3.可以使用管理器装饰器来添加命令 @…
前面也提到过在Flask中最核心的两个组件是Werkzeug和Jinja2模板.其中Werkzeug在前一节已经详细说明了.现在这一节主要是来谈谈Jinja2模板. 一.为什么需要引入模板: 在进行软件开发的时候,我们都希望开发的软件能够有很低的耦合度.而在视图中主要是处理业务逻辑和返回响应的,在web开发中,响应主要是渲染HTML文本,如果把渲染的这一个过程在视图中做的话,会导致耦合度特别高,难以维护.这样就引入了模板,目的是为了把视图中的业务处理和响应分开,这样维护的成本就会降低. 二.Ji…
数据库操作在web开发中扮演着一个很重要的角色,网站中很多重要的信息都需要保存到数据库中.如用户名.密码等等其他信息.Django框架是一个基于MVT思想的框架,也就是说他本身就已经封装了Model类,可以在文件中直接继承过来.但是在Flask中,并没有把Model类封装好,需要使用一个扩展包,Flask-SQLAlchemy.它是一个对数据库的抽象,让开发者不用这些编写SQL语句,而是使用其提供的接口去操作数据库,这其中涉及到一个非常重要的思想:ORM什么是ORM呢?下面我们就来详细讲解一下.…
flask 若想将不同的路由写在不同的文件中(如将 user 对象的相关接口写在一个文件中,将 customer 对象的相关接口写在另一个文件中),可以使用蓝图来实现. 有关蓝图的定义:A Blueprint is a way to organize a group of related views and other code. 更多信息详见:http://flask.pocoo.org/docs/1.0/tutorial/views/#create-a-blueprint 都说自己写的博客自…
在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成度特别高.Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用. 一.一个简单的小例子 创建一个Flask项目的步骤: 1.导入Flask类 2.创建程序实例 3.定义视图(函数) 4.启动服务器 fr…
一.web框架的对比 首先我们先来看下比较火的web框架 1.Django: 优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架 缺点:大到浪费资源,请求的时候需要的资源较高 2.Flask: 优势:小而精,组件只有session,第三方机构强烈支持Flask,非常多的三方组件,简单至极 缺陷:由于三方组件的关系,稳定性相对较差 Flask-session 3.Sanic 优势:异步IO非阻塞,原生WebSocket,小而精,组件只有Session,第三方机构强烈支持非常多的三方…
最近,因为公司的项目一直在研究StrangeIoc框架,小有所得,略作记录. StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对unity开发的一款框架,非常好用. 一.先说下MVCS分别代表什么 1.框架其实就是一种模块的分离,一种写代码的规则,所为的目的都是便于代码的管理修改,更有利于编码思维. 做游戏很重要的一点就是将UI和逻辑剥离出来,StrangeIoc框架就很好地实现了UI和逻辑的分离以及各个模块的分离.下面我将自己的感想一一道来. 1.M  即Mod…
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 QTreeView树形视图的allColumnsShowFocus属性用于控制是否使视图中的所有列显示键盘焦点,如果此属性为True,则所有列都将显示焦点,否则只有一列将显示焦点. 下图是allColumnsShowFocus为False时的截图: 下图是allColumnsShowFocus为True时的截图: 可以看到allColumnsShowFocus为True时,选中某个数据项时,整行数…