12 2019 档案
摘要:一 、采用flask + mysql 的简单图书管理系统 示例代码:
阅读全文
摘要:subquery方法 子查询既select 语句还有select 那么在sqlarchemy中,要实现一个子查询,需要以下几个步骤 1.将子查询按照传统的方式写好查询代码,然后在query对象后面执行subquery方法,将这个查询变成一个子查询。 2.在子查询中,将以后需要用到的字段通过lable
阅读全文
摘要:join 的使用_高级查询之多表查询: 1.join分为left join(左外连接) 和 right join(右外链接)以及内连接(等值连接) 2.sqlarchemy中,使用join来完成内连接,在join的时候,如果不写join的条件,那么默认将使用外键来作为条件连接。 3.查询的字段,跟j
阅读全文
摘要:一、分组group_by 和 过滤分组having 二、示例:
阅读全文
摘要:limit、offset、slice作用: 1.limit:可以限制查询的时候只查寻前几条数据,算top-N查询: 2.offset: 可以限制查找数据的时候过滤掉前面多少条,可以指定开始查询时的偏移量 3.切片:可以对Query对象使用切片操作,来获取想要的数据 也可以使用slice(start,
阅读全文
摘要:一、排序: 1.order_by 方法排序,可以指定根据数据模型中某个属性进行排序,属性名.desc()代表降序排序二、代码示例:
阅读全文
摘要:在sqlarchemy中,如果想要两个模型映射成一对一的关系,那么应该在父模型中,指定引用的时候,要传递一个userlist=False这个参数进去,都是告诉父模型,以后引用这个从模型的时候,不在是一个列表了,而是一个对象了,示例代码如下:
阅读全文
摘要:一、表关系: 表之间的关系存在三种:一对一、一对多、多对多,而SQLARCHMY中的orm也可以模拟这三种关系。 因为一对一其实在SQLarchemy中底层是通过一对多的方式模拟的,所以先来看下一对多的关系。 外键: 使用SQLarchemy创建外键非常简单,在从表中加一个字段,指定这个字段外键的哪
阅读全文
摘要:一、filter 过滤条件: 过滤是数据提取的一个很重要的功能,这些过滤条件是通过filter来实现 二、示例:
阅读全文
摘要:1.模型名:指定查找这个模型中所有的属性(对应查询表为全表查询) 2.模型中的属性:可以指定只查找某个模型的其中的几个属性 3.聚合函数:*func.count:统计行的数量 *func.avg:求平均值 *func.max:求最大值 *func.min:求最小值 *func.sum:求和 func
阅读全文
摘要:一、Interger:整形,映射到数据库中是int类型 float:浮点类型,映射到数据库中是float类型。占据32位 double:双精度浮点类型,映射到数据库中是double类型,占据64位(SQLALCHEMY中没有) String:可变字符类型,映射到数据库中是varchar类型 Bool
阅读全文
摘要:1、SQLAlchemy 介绍和基本使用: SQLAlchemy 采用了类似于Java里Hibernate的数据映射模型 SQLAlchemy 是一个数据库的orm框架,安装命令为pip install sqlalchemy,同时连接mysql,也需要安装pymysql,安装命令为pip insta
阅读全文
摘要:一、Flask_Restful 渲染模版 如果在Flask的类视图中html代码,或者整个html文件代码,即渲染模版的意思,那么就应该使用"api.representation"这个装饰器来定义一个函数,这个函数中,应该对一个html代码进行一个封装,再返回 示例:
阅读全文
摘要:1.Flask_RESTful 结合蓝图使用 在蓝图中,如果使用Flask_RESTful,那么在创建 Api对象的时候,使用蓝图对象,不在是使用app对象了 示例:蓝图文件: 注册蓝图:
阅读全文
摘要:一、复杂参数结构:无非就是key对应的value,又是一个json 或者key对应的一个列表,列表中的每一项都是json,那么可以使用一些特殊字段来实现。如在一个字段中放置一个列表,那么可以使用fields.List,如果在一个字段下面又是一个字典,那么可以使用fields.Nested. 二、示例
阅读全文
摘要:一、Flask_RESTful 返回标准化参数 1.对于一个类视图,可以指定一些字段做标准化用于返回 2.使用orm模型或者自定义模型的时候,他会自动的获取模型中的相应字段 3.生成json格式数据,然后再返回给客户端 4.需要导入flask_restful.marshal_with装饰器 5. 需
阅读全文
摘要:1.参数验证:也叫参数解析 Flask-Restful 插件提供了类似WTForms来验证提交的数据是否合法的包,叫做reqparse 2.基本用法:(借助测试工程师 常用的接口测试工具来检验,如jmeter、postman等等) 3. 示例
阅读全文
摘要:一、REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设 计。是Web服务的一种新的架构风格(一种思想)。 二、REST架构的主要原则 对
阅读全文
摘要:一、文件上传的基本原理: 一个带有 enctype=multipart/form-data 的 <form> 标记,标记中含有 一个 <input type=file> 应用通过请求对象的 files 字典来访问文件 使用文件的 save() 方法把文件 永久地保存在文件系统中 二、从服务器下,载文
阅读全文
摘要:一、WTForm自定义验证器: 1.只有当WTForm内置的验证器不能无法满足要求的时候,需要自定义验证器 二、示例:
阅读全文
摘要:1.WTForms介绍: Flask-WTF是集成WTForms,并带有 csrf 令牌的安全表单和全局的 csrf 保护的功能。 每次我们在建立表单所创建的类都是继承于flask_wtf中的FlaskForm,而FlaskForm是继承WTForms中forms。 作用:1. 这个插件作用:1.表
阅读全文
摘要:一、errorhandler 接收状态吗,可以自定义返回这种状态码的响应的处理办法,如果发生一些异常的时候,比如404、500那么如果想要优雅的处理这些错误,就可以使用errorhandler 注意点: *在errorhandler装饰钩子函数下,要返回响应的状态码 *在errorhandler装饰
阅读全文
摘要:一、钩子函数概念: 在Flask中钩子函数是使用特定装饰器装饰的函数.在正常执行中的代码插入一段自己想要执行的代码.那么这种函数就叫做钩子函数。 二、常见钩子函数: 1.before_first_request 处理项目第一此请求之前执行 2.before_request:在每次请求之前。通常可以用
阅读全文
摘要:session: session的基本概念: 1.session 和 cookie的作用有点类似,都是为了存储用户的信息,都是为了解决http协议无状态的特点。不同的是,cookie信息是存储在客户端,而session信息是存储在服务端。 2.不同的语言,不同的框架,有不同的实现,虽然底层的实现完全
阅读全文
摘要:cookie基本概念: 一、 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Co
阅读全文
摘要:一、如果加载静态文件的时候,指定的蓝图的名字,比如" book.static",(book代表蓝图的名称),那么就会到这个蓝图指定的static_folder下查找静态文件。 示例代码:
阅读全文
摘要:一、蓝图模板中的查找: *如果项目中的templates文件夹中有响应的模板文件,就直接使用了 *如果项目中的templates文件夹中没有响应的模板文件,那么就在定义蓝图的时候指定的路径中寻找,并且蓝图中指定的路径可以为相对路径,相对的是当前这个蓝图文件所在的目录。 二、自定一蓝图模板文件路径 总
阅读全文
摘要:蓝图的基本使用: 一、蓝图:1.蓝图的作用是让我们的flask项目更加模块化,机构清晰,更好的管理项目,让项目达到分层解耦,可以将相同模块的视图函数放在同一个蓝图下,同一个文 件中,方便管理。 二、实例代码:
阅读全文
摘要:一、加载静态文件 静态文件:css 文件、js文件、图片文件 加载静态文件使用的是“url_for”函数 语法:{{ url_for( "static", filename="xxxxx" ) }} 路径查找,要以当前项目的static目录作为根目录。 二、实例:
阅读全文
摘要:set 语句定义变量,相当于python基础中的全局变量,那么后面的代码都可以使用这个变量 with语句定义变量,相当于python基础中的局部变量,那么后面的代码只能在with语句块中使用 实例代码:
阅读全文
摘要:include标签: 1.这个标签相当于直接将指定的模板中的diamagnetic复制粘贴到当前位置 2.include标签,如果想要使用父模板中的变量,直接使用 {% include /common/top.html %} {% inlude /common/bottom.html %} 3.代码
阅读全文
摘要:示例: from flask import Flask,render_template app = Flask(__name__) @app.route('/')def hello_world(): return render_template("index2.html")if __name__ =
阅读全文
摘要:一、jinjia2中的for循环还包含以下变量,可以用来获取当前遍历的状态 | 变量 | 描述 | 当前迭代的索引(从1开始) | | loop.index() | 当前迭代的索引(从0开始) | | loop.first | 是否是第一次迭代,返回True 或 False | | loop.las
阅读全文
摘要:jinjia2中的for循环和python的for循环基本一致for.....in....的形式,并且遍历所有的序列以及迭代器。但是唯一不同的是jinjia2中的for循环没有break和continue 字典遍历和列表遍历 for 循环遍历列表、字典、列表和字典组合 示例:
阅读全文
摘要:一、if语句详解: 所有的控制语句都是放在{% ......%}中,语法格式:if条件判断语句必须放在{% if statement %}中间,并且还必须有结束的标签{% endif%},if语句可以使用>,<,<=,>=,==等等,也可以通过end,or,not,()等等来进行逻辑合作并操作。 二
阅读全文
摘要:一、过滤器的本质就是函数,有时候我们不仅仅是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模版中时不能直接调用python中的某些方法,那么这就用到了过滤器。 使用方式: 过滤器的使用方式为:变量名 | 过滤器。 {{variable | filter_name(*args)
阅读全文