文章分类 - flask
介绍flask使用过程中的一些细节
摘要:cookie和session cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户
阅读全文
摘要:Flask-Restful插件 一、介绍 Flask-Restful是一个专门用来写restful api的一个插件。使用他可以快速的集成restful api功能。在app的后台以及纯api的后台中,这个插件可以帮助我们节省很多时间。当然,如果在普通的网站中,这个插件就显得有些鸡肋了,因为在普通的
阅读全文
摘要:Restful API规范 restful api是用于在前端与后台进行通信的一套规范。使用这个规范可以让前后端开发变得更加轻松。以下将讨论这套规范的一些设计细节。 一、协议 采用http或者https协议。 二、数据传输格式 数据之间传输的格式应该都使用json,而不使用xml。 三、url链接
阅读全文
摘要:flask信号 一、安装: flask中的信号使用的是一个第三方插件,叫做blinker。通过pip list看一下,如果没有安装,通过以下命令即可安装blinker: pip install blinker 二、内置信号 flask内置集中常用的信号: flask.template_rendere
阅读全文
摘要:Flask上下文 Flask项目中有两个上下文,一个是应用上下文(app),另外一个是请求上下文(request)。请求上下文request和应用上下文current_app都是一个全局变量。所有请求都共享的。Flask有特殊的机制可以保证每次请求的数据都是隔离的,即A请求所产生的数据不会影响到B请
阅读全文
摘要:CSRF保护 在flask的表单中,默认是开启了csrf保护功能的,如果你想关闭表单的csrf保护,可以在初始化表单的时候传递csrf_enabled=False进去来关闭csrf保护。如果你想关闭这种默认的行为。如果你想在没有表单存在的请求视图函数中也添加csrf保护,可以开启全局的csrf保护功
阅读全文
摘要:Flask-WTF常用字段和验证器 一、Field常用参数 在使用Field的时候,经常需要传递一些参数进去,以下将对一些常用的参数进行解释: label(第一个参数):Field的label的文本。 validators:验证器。 id:Field的id属性,默认不写为该属性名。 default:
阅读全文
摘要:Flask-WTF表单验证 Flask-WTF是简化了WTForms操作的一个第三方库。WTForms表单的两个主要功能是验证用户提交数据的合法性以及渲染模板。当然还包括一些其他的功能:CSRF保护,文件上传等。安装Flask-WTF默认也会安装WTForms,因此使用以下命令来安装Flask-WT
阅读全文
摘要:Flask-Migrate插件 在实际的开发环境中,经常会发生数据库修改的行为。一般我们修改数据库不会直接手动的去修改,而是去修改ORM对应的模型,然后再把模型映射到数据库中。这时候如果有一个工具能专门做这种事情,就显得非常有用了,而flask-migrate就是做这个事情的。flask-migra
阅读全文
摘要:alembic教程 alembic是sqlalchemy的作者开发的。用来做OMR模型与数据库的迁移与映射。alembic使用方式跟git有点了类似,表现在两个方面。 第一个,alembic的所有命令都是以alembic开头 第二,alembic的迁移文件也是通过版本进行控制的。首先,通过pip i
阅读全文
摘要:MySQL8图文教程 一、下载: 在以下链接中下载MySQL8 Community:https://dev.mysql.com/downloads/windows/installer/8.0.html 二、安装: 下载完成后,就可以双击msi文件进行安装了。安装步骤如下。 第一步:选择Develop
阅读全文
摘要:Flask-SQLAlchemy库 另外一个库,叫做Flask-SQLAlchemy,Flask-SQLAlchemy是对SQLAlchemy进行了一个简单的封装,使得我们在flask中使用sqlalchemy更加的简单。可以通过pip install flask-sqlalchemy。使用Flas
阅读全文
摘要:查询高级 一、排序 order_by:可以指定根据这个表中的某个字段进行排序,如果在前面加了一个-,代表的是降序排序。 在模型定义的时候指定默认排序:有些时候,不想每次在查询的时候都指定排序的方式,可以在定义模型的时候就指定排序的方式。有以下两种方式: relationship的order_by参数
阅读全文
摘要:表关系 表之间的关系存在三种:一对一、一对多、多对多。而SQLAlchemy中的ORM也可以模拟这三种关系。因为一对一其实在SQLAlchemy中底层是通过一对多的方式模拟的,所以先来看下一对多的关系: 一、外键: 在Mysql中,外键可以让表之间的关系更加紧密。而SQLAlchemy同样也支持外键
阅读全文
摘要:查找操作 一、query可用参数: 模型对象。指定查找这个模型中所有的对象。 模型中的属性。可以指定只查找某个模型的其中几个属性。 聚合函数。 func.count:统计行的数量。 func.avg:求平均值。 func.max:求最大值。 func.min:求最小值。 func.sum:求和。 二
阅读全文
摘要:SQLAlchemy基本使用 一、使用SQLAlchemy: 1. 创建ORM模型: 要使用ORM来操作数据库,首先需要创建一个类来与对应的表进行映射。现在以User表来做为例子,它有自增长的id、name、fullname、password这些字段,那么对应的类为: from sqlalchemy
阅读全文
摘要:SQLAlchemy介绍 一、安装: **SQLAlchemy**是一个数据库的ORM框架,让我们操作数据库的时候不要再用SQL语句了,跟直接操作模型一样。安装命令为:pip install SQLAlchemy。 二、通过SQLAlchemy连接数据库: 首先来看一段代码: from sqlalc
阅读全文
摘要:MySQL数据库 在网站开发中,数据库是网站的重要组成部分。只有提供数据库,数据才能够动态的展示,而不是在网页中显示一个静态的页面。数据库有很多,比如有SQL Server、Oracle、PostgreSQL以及MySQL等等。MySQL由于价格实惠、简单易用、不受平台限制、灵活度高等特性,目前已经
阅读全文
摘要:蓝图和子域名 一、蓝图: 之前我们写的url和视图函数都是处在同一个文件,如果项目比较大的话,这显然不是一个合理的结构,而蓝图可以优雅的帮我们实现这种需求。以下看一个使用蓝图的文件的例子: from flask import Blueprint bp = Blueprint('user',__nam
阅读全文
摘要:类视图 之前我们接触的视图都是函数,所以一般简称视图函数。其实视图也可以基于类来实现,类视图的好处是支持继承,但是类视图不能跟函数视图一样,写完类视图还需要通过app.add_url_rule(url_rule,view_func)来进行注册。以下将对两种类视图进行讲解: 一、标准类视图: 标准类视
阅读全文