Flask
小_源
我的梦想那么大,我却离的那么远……
展开
-
Flask框架从入门到精通之Request(六)
一、概况我们都知道当浏览器去访问一个地址时,Http协议会像后台传递一个request对象。这个request对象包含了请求头、请求参数、以及请求方式,当然后台可以取到request。然后进行逻辑处理。再flask中,request对象是一个全局的,可以在任何地方都可以使用。二、GET请求我们写一个接受个人信息的接口,也就是视图函数。然后通过PostMan进行模拟,请求方法是Get。...原创 2019-04-22 18:36:16 · 1226 阅读 · 0 评论 -
Flask框架从入门到精通之模型查询(十三)
一、查询其实我们对模型的主要操作就是查询,在Flask-SQLAlchemy中,支持了很多的查询方法。查询操作是通过query对象操作数据。最基本的查询是返回表中所有数据,可以通过过滤器进行更精确的数据库查询。二、查询过滤器Flask-SQLAlchemy中常用过滤器:过滤器说明filter()把过滤器添加到原查询上,返回一个新查询filter_by()把等值...原创 2019-04-23 19:54:58 · 1248 阅读 · 0 评论 -
Flask框架从入门到精通之模型更新与删除(十四)
一、概况我们前两章实现了对模型类的添加和查询,在开发过程中,查询是比较重要的一个环节。接下来我们要学习的就是对模型的更新和删除。二、更新第一种hero = Hero.query.get(1)hero.name = '伽罗'db.session.add(hero)db.session.commit()我们在本地查询一下:第二种Hero.query.filter_by(...原创 2019-04-23 19:55:20 · 1129 阅读 · 0 评论 -
Flask框架从入门到精通之扩展脚本(十五)
一、概况通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过python script_flask.py runserver --host ip地址,告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在计算机发起的连接,即localhost连接。二、使用...原创 2019-04-23 19:55:44 · 697 阅读 · 0 评论 -
Flask框架从入门到精通之模型迁移操作(十六)
一、概况在Django框架开发过程中,我们对数据库字段添加或删除,直接修改模型类,然后进行迁移可以了,非常方便。我们也想让Flask框架支持这样的操作,就需要使用Flask-Migrate扩展,来实现数据迁移。并且集成到Flask-Script中,所有操作通过命令就能完成。二、安装为了导出数据库迁移命令,Flask-Migrate提供了一个MigrateCommand类,可以附加到flask...原创 2019-04-23 19:56:04 · 1235 阅读 · 0 评论 -
Flask框架从入门到精通之模型关系(十七)
一、概况在数据库中,我们知道数据关系大概有如下几种:一对一、一对多、多对多、自关联等。我们模型已经描述过了一对多,那么下面我们在用模型把其它关系也写出来。关系一对一模型案例:一篇文章只对应一个内容# 文章模型class Article(db.Model): # 表名 __tablename__ = 'tbl_article' # 数据库真正存在的字段 ...原创 2019-04-23 19:58:18 · 863 阅读 · 0 评论 -
Flask框架从入门到精通之初识(一)
一、概况Python Web框架有很多个,比如Django、Flask、Tornado等框架。这个三个框架在Web端有影响力的,尤其是Django框架,在快速开发上占有一定的优势。但是Django框架属于重量级框架,它能想到的功能都会事先帮你想好。你只要按照它的模块要求写,一个网站就能很快速搭建出来。Flask和Tornado框架就属于轻量级框架了,它只提供最核心的功能,其余的功能你需要用第三...原创 2019-04-19 16:15:18 · 1223 阅读 · 0 评论 -
Flask框架从入门到精通之参数配置(二)
一、概况上一篇我们已经把Flask第一个程序运行起来了,那么这一篇主要讲一下Flask参数的配置。二、配置参数Flask参数配置方式有很多种,每一种都可以达到结果,在合适的场景选择合适的配置方式。配置文件在文件加中新建一个config.cfg配置文件,在配置文件上写上下面语句,表示开启调试模式。这样当我们程序出错的时候,就能知道错误在多少行,方便我们快速定位错误。DEBUG = T...原创 2019-04-19 16:24:55 · 832 阅读 · 0 评论 -
Flask框架从入门到精通之路由(三)
一、概况说到路由,其实就是我们在浏览器输入地址后,后台进行匹配,如果匹配上,则执行此视图函数并返回内容。我们经过前面的例子也看出来Flask是用一个叫route()的装饰器进行装饰到视图函数上。匹配的内容是去掉域名和端口后面地址,比如:http://127.0.0.1:8000/index这个地址,去掉域名和端口后就剩下/index这部分内容,所有我们只要装饰/index就可以了。二、路由...原创 2019-04-19 16:26:28 · 946 阅读 · 0 评论 -
Flask框架从入门到精通之转换器(四)
一、概况有很多请求我们URL地址后面会跟着参数,并且后端要提取到参数,比如:http://127.0.0.1:5000/center/1这个URL地址后面有个1,可以代表我们要访问uid为1的个人信息。那么我们如何提取到参数呢?这个时候就会用到Flask的转换器。二、转换器在Flask中支持下面这些转换器:转换器含义int接受整数float同 int ,但是接...原创 2019-04-19 16:27:56 · 895 阅读 · 0 评论 -
Flask框架从入门到精通之模板初识(五)
一、概况我们目前在视图函数函数中返回的都一段普通的字符串,一张网页需要用到html、css、js等标签,才能展现的更漂亮。所以目前咱们只返回字符串还达不到,那么我们就需要模板。模板其实就已经写好的html、css、js,你只需要往里面填充要展示的内容即可。二、模板在我们项目的目录下新建一个名为templates的文件夹,并在此文件夹新建一个名为index.html的html文件。内容如下:...原创 2019-04-19 16:34:12 · 843 阅读 · 0 评论 -
Flask框架从入门到精通之模型数据库配置(十一)
一、概况在Django框架中内部已经提供ORM这样的框架,来实现对象关系映射,方便我们操作数据库。如果想在Flask中也达到这样效果,需要安装一个第三方来支持。SQLAlchemy是一个关系型数据库框架,它提供了高层的ORM和底层的原生数据库的操作。flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。二、安装在Flask安装:pip install fl...原创 2019-04-23 18:52:55 · 1020 阅读 · 0 评论 -
Flask框架从入门到精通之异常处理(十)
一、概况我们在写视图函数时,会对前端传递过来的参数进行校验,如果校验不过,会给前端返回一些特定的异常信息。在Flask中,abort() 函数可以立即终止视图函数的执行,并且把相对应的错误信息返回给前端。二、使用from flask import Flask, abortapp = Flask(__name__)@app.route('/login/<phone>')...原创 2019-04-23 18:52:30 · 687 阅读 · 0 评论 -
Flask框架从入门到精通之Response(七)
一、概况视图在接收HttpRequest并处理后,必须返回HttpResponse对象。目前视图函数只是返回字符串,之后 Flask 将字符串转换为响应对象。如果你要显式地转换,你可以使用make_response()函数然后再进行修改。二、HttpResponse我们新建一个名为cookie.html的模板,简单写上下面代码:<!DOCTYPE html><html ...原创 2019-04-22 18:41:50 · 1095 阅读 · 0 评论 -
Flask框架从入门到精通之自定义Response(八)
一、概况我们都知道当浏览器发起一个请求时,服务器会给一个响应。这个响应包含了返回的内容类型,状态码,服务器版本等一些。如下图:如果我们不进行修改这里面的响应信息,它会返回默认信息。二、自定义响应信息如果我们要自定义响应信息,必须返回的是元组,并且是(response,status,headers)这样的数据结构,至少要有response。status指定的是HTTP状态码,可以是HTT...原创 2019-04-23 10:15:34 · 1612 阅读 · 0 评论 -
Flask框架从入门到精通之模板导入与继承(十八)
一、概况模板导入就是将另一个模板加载到当前模板中,直接渲染。模板继承和类的继承含义是一样的,主要是为了提高代码重用,减轻开发人员的工作量。 典型应用:网站的头部、尾部信息。二、模板导入语法{% include(‘模板名称’) %}{% include(‘目录/模板名称’) %}使用#导入头部header.html{% include 'header.html' %} ...原创 2019-04-27 18:55:24 · 1000 阅读 · 0 评论 -
Flask框架从入门到精通之模板宏(十九)
一、概况在Flask的模板中有一个特性和Django内不同,这个特性就是宏。宏的功能和python中的函数类似。声明宏{% macro 宏的名字(参数) %} 内容{% endmacro %}调用宏{{ 宏的名字(参数) }}在python函数可以实现代码复用的作用,在模板中宏也有类似的作用。二、使用创建一个Flask项目,并在模型声明如下代码:无参宏&...原创 2019-04-27 18:55:44 · 971 阅读 · 0 评论 -
Flask框架从入门到精通之模板表单(二十)
一、概况当前端使用form表单进行参数传递时候,前端一般都会用js来校验用户输入的参数是否合法。作为后端,不能依赖前端的校验。要在前端校验的基础上在进行一遍校验,防止程序出现异常。当参数过多时,我们要对每个参数都进行校验,显得非常麻烦。在Flask中我们可以用Flask-WTF帮助我们快速校验。Flask-WTF是集成WTForms,并带有 csrf 令牌的安全表单和全局的 csrf 保护的功...原创 2019-04-27 18:56:06 · 1197 阅读 · 0 评论 -
Flask框架从入门到精通之消息闪现和日志记录(二十一)
一、概况Flask提供了一个功能方便向前端反馈消息,这个功能叫闪现。闪现的功能是基于session实现,所以我们在使用闪现的时候需要配置secret_key。二、使用我们用一个上传图片的例子来实现闪现,当我们上传图片成功后,给前端反馈一个消息。from flask import Flask, render_template, flash, request, url_for, redirec...原创 2019-04-27 18:56:36 · 1119 阅读 · 0 评论 -
Flask框架从入门到精通之请求钩子(二十二)
一、概况Flask的请求钩子指的是在执行视图函数前后执行的一些函数,我们可以在这些函数里面做一些操作。Flask利用装饰器给我们提供了四种钩子函数。before_first_request:在处理第一个请求前执行。比如链接数据库操作before_request:在每次请求前执行。比如权限校验after_request:每次请求之后调用,前提是没有未处理的异常抛出teardown_req...原创 2019-04-27 18:57:13 · 981 阅读 · 0 评论 -
Flask框架从入门到精通之上下文(二十三)
一、概况Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。请求对象是一个很好的例子,它封装了客户端发送的HTTP请求。要想让视图函数能够访问请求对象,一个显而易见的方式是将其作为参数传入视图函数,不过这会导致程序中的每个视图函数都增加一个参数,除了访问请求对象,如果视图函数在处理请求时还要访问其他对象,情况会变得更糟。为了避免大量可有可无的参数把视图函数弄得一团糟,F...原创 2019-04-27 18:57:38 · 929 阅读 · 0 评论 -
Flask框架从入门到精通之蓝图(二十四)
一、概况从前面的知识点能看出来,我们所有的视图函数都写在了一个文件当中,当我们的业务越来复杂的时候。视图函数也会变得越来越多,导致阅读不方便,维护起来困难等难题。比如下面这样:from flask import Flaskfrom flask_script import Managerapp = Flask(__name__)@app.route('/')def index():...原创 2019-04-27 18:57:56 · 1073 阅读 · 0 评论 -
Flask框架从入门到精通之Session(九)
一、概况上一篇,我们说到cookie,除了cookie外还有一个叫session的机制。session也是可以存储一些信息的。对于一些敏感、重要的信息,我们可以存储到session中。谁也不希望自己的余额、银行卡密码存到cookie当中。flask中的session比较奇葩,它把session进行加密后存到cookie当中了,所以说session是依赖cookie。在flask中的seesio...原创 2019-04-23 18:51:54 · 881 阅读 · 0 评论 -
用uWSGI和Nginx部署Flask项目
概况在开发过程中,我们一般直接用Python命令直接运行Flask程序。这样的运行只适合我们开发,方便我们调试。一旦程序部署到线上,这样运行的Flask程序性能会比较低。可以采用uWSGI+Nginx进行部署。uWSGI在部署之前,我们得先了解几个概念wsgiweb应用程序之间的接口。它的作用就像是桥梁,连接在web服务器和web应用框架之间。uwsgi是一种传输协议,用于定...原创 2019-04-30 11:02:18 · 1291 阅读 · 0 评论