自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Pthon’God

大唐长安

原创 Flask框架之ORM层面外键和一对一关系

ORM关系之一对一 在sqlalchemy中,如果想要将两个模型映射成一对一的关系,那么应该在父模型中,指定引用的时候,要传递一个uselist=False这个参数进去。就是告诉父模型,以后引用这个从模型的时候,不再是一个列表了,而是一个对象了。 需要导入backref from sqlalche...

2020-01-22 18:34:24

阅读数 35

评论数 0

原创 Flask框架之ORM层面外键和一对多关系

ORM关系之一对多 mysql级别的外键,必须拿到一个表的外键,然后通过这个外键再去另外一张表中查找,这样太麻烦了。 SQLAlchemy提供了一个relationship,这个类可以定义属性,以后在访问相关联的表的时候就直接可以通过属性访问的方式就可以访问得到了。 另外,可以通过backref来...

2020-01-22 17:30:06

阅读数 53

评论数 0

原创 Flask框架之SQLALchemy实现外键及其四种约束

表关系 表之间的关系存在三种:一对一、一对多、多对多。 而SQLAlchemy中的ORM也可以模拟这三种关系。 一对一其实在SQLAlchemy中底层是通过一对多的方式模拟的。 SQLAlchemy创建外键 在从表中增加一个字段,指定这个字段外键的是哪个表的哪个字段就可以了。 从表中外键的字段,...

2020-01-22 17:02:19

阅读数 511

评论数 0

原创 Flask框架之filter过滤条件

filter常用过滤条件 过滤是数据提取的一个很重要的功能。 equals :== news= session.query(News).filter(News.title == "title1").first() not equals : != query(...

2020-01-22 16:47:23

阅读数 67

评论数 0

原创 Flask框架之query查询函数

query查询函数 query函数可传递的参数一共有3种: 模型名。指定查找这个模型中所有的属性(对应查询表为全表查询)。 模型中的属性。可以指定只查找某个模型的其中几个属性。 聚合函数。 func.count:统计行的数量。 func.avg:求平均值。 func.max:求最大值...

2020-01-21 22:29:59

阅读数 38

评论数 0

原创 Flask框架之Column常用参数

Column常用参数 primary_key:True设置某个字段为主键。 autoincrement:True设置这个字段为自动增长的。 default:设置某个字段的默认值。在发表时间这些字段上面经常用。 nullable:指定某个字段是否为空。默认值是True,就是可以为空。 unique...

2020-01-21 22:20:57

阅读数 39

评论数 0

原创 Flask框架之SQLAlchemy常用数据类型

SQLAlchemy常用数据类型 Integer:整形,映射到数据库中是int类型。 Float:浮点类型,映射到数据库中是float类型。它占据的32位。 Double:双精度浮点类型,映射到数据库中是double类型,占据64位 (SQLALCHEMY中没有)。 String:可变字符类型,...

2020-01-21 22:02:07

阅读数 30

评论数 0

原创 Flask框架之SQLAlchemy对数据的增删改查操作

SQLAlchemy对数据的增删改查操作 用session做数据的增删改查操作: 一、构建session对象: 所有和数据库的ORM操作都必须通过一个叫做session的会话对象来实现. from sqlalchemy.orm import sessionmaker engine = crea...

2020-01-21 21:37:50

阅读数 66

评论数 0

原创 Flask框架之定义ORM模型并将其映射到数据库中

定义ORM模型并将其映射到数据库中 用declarative_base根据engine创建一个ORM基类。 from sqlalchemy.ext.declarative import declarative_base engine = create_engine(DB_URI) Base ...

2020-01-21 21:23:02

阅读数 71

评论数 0

原创 Flask框架之ORM介绍

ORM介绍 ORM:Object Relationship Mapping对象关系映射 对象模型与数据库表的映射 通过ORM可以通过类的方式去操作数据库而不用再写原生的SQL语句,通过把表映射成类,把行作为实例,把字段作为属性. ORM在执行对象操作的时候最终还是会把对象的操作转换为数据库的原生...

2020-01-21 13:52:05

阅读数 67

评论数 0

原创 Flask框架之SQLAlchemy连接数据库

Flask中的数据库操作之前准备工作 mysql:如果是在windows上,到官网下载。如果是ubuntu,通过命令sudo apt-get install mysql-server libmysqlclient-dev -yq进行下载安装。 MySQLdb:MySQLdb是用Python来操作...

2020-01-21 13:37:27

阅读数 33

评论数 0

原创 Flask框架之Flask_RESTful渲染模版

Flask_RESTful渲染模版 如果在Flask_RESTful的类视图中想要返回html片段代码,或者是整个html文件代码,即渲染模版的意思。 应该使用api.representation这个装饰器来定义一个函数, 在这个函数中,应该对html代码进行一个封装,再返回。 from f...

2020-01-21 13:14:19

阅读数 48

评论数 0

原创 Flask框架之Flask_RESTful结合蓝图使用

Flask_RESTful结合蓝图使用 在蓝图中,如果使用Flask_RESTful,那么在创建Api对象的时候,使用蓝图对象,不再是使用app对象了. 蓝图news.py文件: from flask import url_for,render_template,Blueprint,make_r...

2020-01-21 12:35:55

阅读数 53

评论数 0

原创 Flask框架之Flask_RESTful返回标准化参数强化

重命名属性和默认值 1: 有的时候对外给出的属性名和模型内部的属性名不相同时,使用 attribute可以配置这种映射。 比如: 想要返回模型对象user.username的值,但是在返回给外面的时候,想以uname返回去。 2: 在返回某些字段的时候,有时候可能没有值,但想给一个值用以提示,那...

2020-01-21 12:21:06

阅读数 55

评论数 0

原创 Flask框架之Flask_RESTful返回标准化参数

Flask_RESTful返回标准化参数 对于一个类视图,可以指定好一些字段作标准化用于返回。 以后使用ORM模型或者自定义模型的时候,它会自动的获取模型中的相应的字段, 生成json格式数据,然后再返回给客户端。 这需要导入flask_restful.marshal_with装饰器。 还需要写...

2020-01-15 23:48:06

阅读数 24

评论数 0

原创 Flask框架之Flask_RESTful功能之参数验证

参数验证 也叫参数解析。 Flask-Restful插件提供了类似WTForms来验证提交的数据是否合法的包,叫做reqparse。 基本用法 借助于测试工程师 常用的接口测试工具postman来检验。 from flask import Flask,url_for,render_templat...

2020-01-15 22:47:44

阅读数 22

评论数 0

原创 Flask框架之Flask_RESTful

Flask_RESTful的基本使用 优势: Flask-Restful是一个专门用来写restful api的一个插件。 使用它可以快速的集成restful api接口功能。 在系统的纯api的后台中,这个插件可以帮助我们节省很多时间。 缺点: 如果在普通的网站中,这个插件就没有优势了,因...

2020-01-15 19:52:08

阅读数 107

评论数 0

原创 Flask框架之Restful接口规范

Restful接口规范 REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。 它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次。 restf...

2020-01-15 18:39:03

阅读数 78

评论数 0

原创 Flask框架之利用flask-wtf验证上传的文件

利用flask-wtf验证上传的文件 定义验证表单类的时候,对文件类型的字段,需要采用FileField这个类型,即wtforms.FileField。 验证器需要从flask_wtf.file中导入。flask_wtf.file.FileRequired和flask_wtf.file.File...

2020-01-15 16:00:29

阅读数 99

评论数 0

原创 Flask框架之访问文件

访问已经上传的文件 从服务器上读取文件,应该定义一个url与视图函数,来获取指定的文件。 在这个视图函数中,使用send_from_directory(文件的目录,文件名)来获取。 python启动文件: from flask import Flask,send_from_directory...

2020-01-15 12:34:25

阅读数 45

评论数 0

原创 Flask框架之文件上传

文件上传 在模版html中,表单需要指定encotype='multipart/form-data'(相当于文件的格式类型)才能上传文件。 在后台如果想要获取上传的文件,那么应该使用request.files.get('文件名')来获取。 保存文件之前,先...

2020-01-15 12:08:45

阅读数 33

评论数 0

原创 Flask框架之WTForms常用验证器

WTForms常用验证器 页面把数据提交上来,需要经过表单验证,进而需要借助验证器来进行验证 常用的内置验证器: Length:字符串长度限制,有min和max两个值进行限制。 EqualTo:验证数据是否和另外一个字段相等,常用的就是密码和确认密码两个字段是否相等。 Email:验证上传的数据...

2020-01-14 21:05:45

阅读数 92

评论数 0

原创 Flack框架之WTForms插件

WTForms插件 这个插件库主要有两个作用。 第一个是做表单验证,将用户提交上来的数据进行验证是否符合系统要求。 第二个是做模版渲染。 (了解即可) Flask-WTF Flask-WTF是简化了WTForms操作的一个第三方库。 WTForms表单的两个主要功能是验证用户提交数据的合法性...

2020-01-14 16:46:49

阅读数 61

评论数 0

原创 Flask框架之内置信号

内置信号 内置信号,已将将创建信号与发送信号功能完成,只需要了解其功能,做出相应的监听使用就可以了。 template_rendered:模版渲染完成后的信号。 from flask import Flask,request,g,template_rendered,got_request_e...

2020-01-14 16:30:39

阅读数 88

评论数 0

原创 Flask框架之信号使用场景

信号使用场景 定义一个登录的信号 用户登录进来就发送一个登录信号,然后能够监听这个信号 在监听到这个信号以后,就记录当前这个用户登录的信息 用信号的方式,记录用户的登录信息即登录日志 具体实现 创建登陆信号,以及监听 from blinker import Namespace from d...

2020-01-14 15:46:45

阅读数 59

评论数 0

原创 Flask框架之信号机制

信号机制 类似于两方属于敌对关系时,某人在敌对方阵营进行交谈,一旦遇到特殊情况,某人便会发送信号,他的同伙接收(监听)到他发的信号后,同伙便会做出一系列的应对策略(杀进去|撤退)。 flask中的信号使用的是一个第三方插件,叫blinker。通过pip list看一下,如果没有安装,通过以下命令即...

2020-01-14 12:52:07

阅读数 30

评论数 0

原创 Flask框架之钩子函数

钩子函数 在Flask中钩子函数是使用特定的装饰器装饰的函数。 为什么叫做钩子函数呢,是因为钩子函数可以在正常执行的代码中,插入一段自己想要执行的代码。那么这种函数就叫做钩子函数。 常见的钩子函数 1、before_first_request 处理项目的第一次请求之前执行。 @app.befo...

2020-01-14 11:48:57

阅读数 37

评论数 0

原创 Flask框架之线程隔离的g对象

保存为全局对象g对象的好处 g对象是在整个Flask应用运行期间都是可以使用的。 并且也跟request一样,是线程隔离的。 这个对象是专门用来存储开发者自己定义的一些数据,方便在整个Flask程序中都可以使用。 一般使用就是,将一些经常会用到的数据绑定到上面,以后就直接从g上面取就可以了,而不...

2020-01-14 10:27:54

阅读数 34

评论数 0

原创 Flask框架之Flask_request

Flask_request 请求上下文: 请求上下文也是存放到一个LocalStack的栈中。 和请求相关的操作就必须用到请求上下文,比如使用url_for反转视图函数。 视图函数中 在视图函数中,不用担心请求上下文的问题。 因为视图函数要执行,那么肯定是通过访问url的方式执行的, 那么这种情...

2020-01-13 22:23:58

阅读数 32

评论数 0

原创 Flask框架之Flask_app上下文

Flask_app上下文 app上下文,也叫应用上下文。 应用上下文 应用上下文是存放到一个LocalStack的栈中。和应用app相关的操作就必须要用到应用上下文,比如通过current_app获取当前的这个app名字。 视图函数中 在视图函数中,不用担心应用上下文的问题。 因为视图函数要执...

2020-01-13 22:04:59

阅读数 43

评论数 0

原创 Flask框架之ThreadLocal变量

Local对象隔离线程间的对象_即ThreadLocal变量 Local对象 在Flask中,类似于request对象,其实是绑定到了一个werkzeug.local.Local对象上。 这样,即使是同一个对象,那么在多个线程中都是隔离的。 类似的对象还有session以及g对象。 flask=w...

2020-01-13 21:39:49

阅读数 104

评论数 0

原创 Flask框架之操作session

设置session 通过flask.session就可以操作session了。 session['uname']='wukong'。 获取session session.get(key) 删除session中的值 删除一个值:session.pop(ke...

2020-01-13 21:05:50

阅读数 168

评论数 0

原创 Flask框架之session

session基本概念 session技术也叫会话技术。 session和cookie的作用有点类似,都是为了存储用户相关的信息,都是为了解决http协议无状态的这个特点。 不同的是,cookie信息是存储在客户端,而session信息是存储在服务器端。 需要注意的是,不同的语言,不同的框架,有不...

2020-01-13 20:51:56

阅读数 108

评论数 0

原创 Flask框架之cookie的基本设置

设置cookie 设置cookie是在Response的对象上设置。 flask.Response对象有一个set_cookie方法,可以通过这个方法来设置cookie信息。 以key,value形式设置信息。 查看cookie信息 在Chrome浏览器中查看cookie的方式: 方式1 借助于...

2020-01-13 20:27:50

阅读数 158

评论数 0

原创 Flask框架之cookie的基本概念

cookie的基本概念 在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。 cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据cookie给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候...

2020-01-13 20:12:59

阅读数 43

评论数 0

原创 Flask框架之子域名实现

蓝图实现子域名 使用蓝图技术。 在创建蓝图对象的时候,需要传递一个subdomain参数,来指定这个子域名的前缀。 例如:cms_bp= Blueprint('cms',__name__,subdomain='test') 需要在主app文件中,需要配置a...

2020-01-13 20:07:57

阅读数 37

评论数 0

原创 Flask框架之url_for反转蓝图

url_for反转蓝图中的视图函数为url 如果使用蓝图,那么以后想要反转蓝图中的视图函数为url,那么就应该在使用url_for的时候指定这个蓝图名字。 app类中、模版中、同一个蓝图类中都是如此。 否则就找不到这个endpoint。 如app类 blueprint_demo.py中: #如下...

2020-01-13 20:00:52

阅读数 44

评论数 0

原创 Flask框架之蓝图中静态文件寻找规则

蓝图中静态文件寻找规则 正常情况下 在模版文件中,加载静态文件,如果使用url_for('static'),那么就只会在app指定的静态文件夹目录下查找静态文件。 <link rel="stylesheet" href="{{ url_f...

2020-01-13 18:59:57

阅读数 49

评论数 0

原创 Flask框架之蓝图中模版文件寻找规则

蓝图中模版文件寻找规则 templates文件夹 如果项目中的templates文件夹中有相应的模版文件,就直接使用了。 news_bp = Blueprint('news',__name__,url_prefix='/news') 自动义文件夹 ...

2020-01-13 18:45:44

阅读数 37

评论数 0

原创 Flask框架之蓝图

蓝图 蓝图的作用就是让Flask项目更加模块化,结构更加清晰,为了更好的管理项目让项目达到分层解耦而产生的。 可以将相同模块的视图函数放在同一个蓝图下,同一个文件中,方便管理。 蓝图基本语法 #在蓝图文件中导入Blueprint: from flask import Blueprint use...

2020-01-13 18:40:14

阅读数 78

评论数 0

提示
确定要删除当前文章?
取消 删除