Flask
文章平均质量分 61
dongge-destiny
这个作者很懒,什么都没留下…
展开
-
Flask-请求勾子
请求勾子在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求开始时,根据需求进行权限校验;在请求结束时,指定数据的交互格式;为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:before_first_request在处理第一个请求前执行before...原创 2018-07-07 08:21:57 · 239 阅读 · 0 评论 -
Flask-Cookie
CookieCookie:指某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地的数据(通常经过加密)。复数形式Cookies。Cookie最早是网景公司的前雇员Lou Montulli在1993年3月的发明。Cookie是由服务器端生成,发送给客户端浏览器,浏览器会将Cookie的key/value保存,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Co...原创 2018-07-07 08:24:02 · 194 阅读 · 0 评论 -
Flask-Session
Session对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息在服务器端进行状态保持的方案就是SessionSession依赖于Cookiesession数据的获取session:请求上下文对象,用于处理http请求中的一些数据内容@app.route('/index1') def index1(): session['username']...原创 2018-07-07 08:24:41 · 456 阅读 · 0 评论 -
Flask-上下文
上下文上下文:相当于一个容器,保存了 Flask 程序运行过程中的一些信息。Flask中有两种上下文,请求上下文和应用上下文请求上下文(request context)思考:在视图函数中,如何取到当前请求的相关数据?比如:请求地址,请求方式,cookie等等在 flask 中,可以直接在视图函数中使用 request 这个对象进行获取相关数据,而 request 就是请求上下文的对象,保存了当前本...原创 2018-07-07 08:25:10 · 435 阅读 · 0 评论 -
Flask-Script 扩展
Flask-Script 扩展通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过:python hello.py runserver -host ip地址 以上代码告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在的计算机发起的连接,即localhost连...原创 2018-07-07 08:25:57 · 246 阅读 · 0 评论 -
Flask-模板
Jinja2模板引擎简介模板在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的...原创 2018-07-07 08:28:57 · 505 阅读 · 0 评论 -
Flask-模板代码复用
宏对宏(macro)的理解:把它看作 Jinja2 中的一个函数,它会返回一个模板或者 HTML 字符串为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复使用定义宏{% macro input(name,value='',type='text') %} <input type=...原创 2018-07-07 08:39:08 · 953 阅读 · 0 评论 -
Flask-模板中特有的变量和函数
模板中特有的变量和函数你可以在自己的模板中访问一些 Flask 默认内置的函数和对象config你可以从模板中直接访问Flask当前的config对象:{{config.SQLALCHEMY_DATABASE_URI}} sqlite:///database.db request就是flask中代表当前请求的request对象:{{request.url}} http://127.0.0.1 se...原创 2018-07-07 08:42:03 · 425 阅读 · 0 评论 -
Flask-web表单
Web表单Web 表单是 Web 应用程序的基本功能。它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。在Flask中,为了处理web表单,我们可以使用 Flask-WTF 扩展,它封装了 WTForms,并且它有验证表单数据的功能WTForms支持的HTML标准字段字段对象说...原创 2018-07-07 08:43:40 · 625 阅读 · 0 评论 -
Flask-CSRF
CSRFCSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题:个人隐私泄露以及财产安全。CSRF攻击示意图客户端访问服务器时没有同服务器做安全验证防止 CSRF 攻击步骤在客户端向后端请求界面数据的时候,后端会往响...原创 2018-07-08 10:08:35 · 226 阅读 · 0 评论 -
Flask-ORM
ORMORM 全拼Object-Relation Mapping.中文意为 对象-关系映射.主要实现模型对象到关系数据库数据的映射.比如:把数据库表中每条记录映射为一个模型对象ORM图解优点 :只需要面向对象编程, 不需要面向数据库编写代码.对数据库的操作都转化成对类属性和方法的操作.不用编写各种数据库的sql语句.实现了数据模型与数据库的解耦, 屏蔽了不同数据库操作上的差异.不在关注用的是mys...原创 2018-07-08 10:08:59 · 864 阅读 · 0 评论 -
Flask-数据库基本操作
数据库基本操作在Flask-SQLAlchemy中,插入、修改、删除操作,均由数据库会话管理。会话用 db.session 表示。在准备把数据写入数据库前,要先将数据添加到会话中然后调用 commit() 方法提交会话。在 Flask-SQLAlchemy 中,查询操作是通过 query 对象操作数据。最基本的查询是返回表中所有数据,可以通过过滤器进行更精确的数据库查询。在视图函数中定义模型类fr...原创 2018-07-08 10:09:15 · 2605 阅读 · 0 评论 -
Flask-Blueprint
Blueprint模块化随着flask程序越来越复杂,我们需要对程序进行模块化的处理,之前学习过python的模块化管理,于是针对一个简单的flask程序进行模块化处理举例来说:我们有一个博客程序,前台界面需要的路由为:首页,列表,详情等页面源程序app.py文件: from flask import Flask app=Flask(__name__) @app.route('/') def ...原创 2018-07-08 10:09:43 · 350 阅读 · 0 评论 -
Flask简介
Flask简介Web应用程序的本质Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。Web框架什么是Web框架?协助开发者快速开发 Web 应用程序的一套功能代码开发者只需要按照框架约定要求,在指定位置写上自己的业务逻辑代码例如:在某个区需要成立一家医院,有两种方式:圈地,打地基,盖楼,装修,入驻买楼,装修,入驻为什么要用Web框架?web网站发展至今,特别是服务...原创 2018-07-06 09:10:02 · 950 阅读 · 0 评论 -
Flask-虚拟环境
虚拟环境为什么要搭建虚拟环境?在开发过程中, 当需要使用python的某些工具包/框架时需要联网安装比如联网安装Flask框架flask-0.10.1版本sudo pip install flask==0.10.1 提示:使用如上命令, 会将flask-0.10.1安装到/usr/local/lib/python2.7/dist-packages路径下问题:如果在一台电脑上, 想开发多个不同的项目...原创 2018-07-06 09:10:18 · 154 阅读 · 0 评论 -
Flask-helloworld
HelloWorld程序创建 Python 项目打开 Pycharm,创建 Pure Python 类型的项目,创建项目完成之后选择之前创建的 py3_flask 作为虚拟环境第 4 步路径可以通过在指定虚拟环境下,输入 which python 获得示例:新建文件helloworld.py导入Flask类from flask import Flask Flask函数接收一个参数__name__,...原创 2018-07-06 09:10:32 · 247 阅读 · 0 评论 -
flask-相关配置参数
相关配置参数在上一节实现了一个最简单的 Flask 应用程序,只使用了7行代码,接来对 Flask 程序的创建,运行配置做进一步的了解,具体有:Flask 程序初始化参数Flask 程序相关配置加载方式app.run() 参数初始化参数Flask 程序实例在创建的时候,需要默认传入当前 Flask 程序所指定的包(模块),接下来就来详细查看一下 Flask 应用程序在创建的时候一些需要我们关注的参...原创 2018-07-06 09:10:43 · 239 阅读 · 0 评论 -
Flask-路由基本定义
路由基本定义明确路由定义的参数,请求方式指定PostMan 的使用指定路由地址# 指定访问路径为 demo1 @app.route('/demo1') def demo1(): return 'demo1' 给路由传参示例有时我们需要将同一类 URL 映射到同一个视图函数处理,比如:使用同一个视图函数来显示不同用户的个人信息。# 路由传递参数 @app.route('/user/<u...原创 2018-07-06 09:10:51 · 1224 阅读 · 0 评论 -
Flask-视图常用逻辑
视图常用逻辑返回 JSON重定向url_for自定义状态码返回JSON在使用 Flask 写一个接口时候需要给客户端返回 JSON 数据,在 Flask 中可以直接使用 jsonify 生成一个 JSON 的响应# 返回JSON @app.route('/demo4') def demo4(): json_dict = { "user_id": 10, "u...原创 2018-07-06 09:10:59 · 229 阅读 · 0 评论 -
Flask-正则匹配路由
正则匹配路由在 web 开发中,可能会出现限制用户访问规则的场景,那么这个时候就需要用到正则匹配,根据自己的规则去限定请求参数再进行访问具体实现步骤为:导入转换器基类:在 Flask 中,所有的路由的匹配规则都是使用转换器对象进行记录自定义转换器:自定义类继承于转换器基类添加转换器到默认的转换器字典中使用自定义转换器实现自定义匹配规则代码实现导入转换器基类from werkzeug.routing...原创 2018-07-06 09:11:10 · 696 阅读 · 0 评论 -
Flask-异常捕获
异常捕获HTTP 异常主动抛出abort 方法抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。参数:code – HTTP的错误状态码# abort(404) abort(500) 抛出状态码的话,只能抛出 HTTP 协议的错误状态码捕获错误errorhandler 装饰器注册一个错误处理程序,当程序抛出...原创 2018-07-06 09:11:30 · 444 阅读 · 0 评论 -
Flask-装饰器路由具体实现梳理
装饰器路由具体实现梳理Flask有两大核心:Werkzeug和Jinja2- Werkzeug实现路由、调试和Web服务器网关接口 - Jinja2实现了模板。 Werkzeug是一个遵循WSGI协议的python函数库- 其内部实现了很多Web框架底层的东西,比如request和response对象; - 与WSGI规范的兼容;支持Unicode; - 支持基本的会话管理和签名Cookie; -...原创 2018-07-06 09:11:45 · 383 阅读 · 0 评论 -
Flask-request
requestrequest 就是flask中代表当前请求的 request 对象,其中一个请求上下文变量(理解成全局变量,在视图函数中直接使用可以取到当前本次请求)常用的属性如下:属性说明类型data记录请求的数据,并转换为字符串*form记录请求中的表单数据MultiDictargs记录请求中的查询参数MultiDictcookies记录请求中的cookie信息Dictheaders记录请求中...原创 2018-07-06 09:11:59 · 312 阅读 · 0 评论 -
Flask-状态保持
状态保持因为 http 是一种无状态协议,浏览器请求服务器是无状态的。无状态:指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求。无状态原因:浏览器与服务器是使用 socket 套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前的 socket 连接,而且服务器也会在处理页面完毕之后销毁页面对象。有时需要保持下来用户浏览的状态,比如用户是否登录过,浏...原创 2018-07-07 08:22:09 · 472 阅读 · 0 评论 -
Flask-单元测试
单元测试为什么要测试?Web程序开发过程一般包括以下几个阶段:[需求分析,设计阶段,实现阶段,测试阶段]。其中测试阶段通过人工或自动来运行测试某个系统的功能。目的是检验其是否满足需求,并得出特定的结果,以达到弄清楚预期结果和实际结果之间的差别的最终目的。测试的分类:测试从软件开发过程可以分为:单元测试对单独的代码块(例如函数)分别进行测试,以保证它们的正确性集成测试对大量的程序单元的协同工作情况做...原创 2018-07-08 10:10:01 · 336 阅读 · 0 评论