Flask框架
小廖同学
个人博客网址http://xiaoliaozi.com/
上面记录了自己学习的一些笔记
欢迎大家访问
展开
-
IK中文分词器和elasticsearch操作
IK中文分词器和elasticsearch操作IK中文分词器下载安装包https://github.com/medcl/elasticsearch-analysis-ik>将elasticsearch-analysis-ik-5.6.16.zip 复制到虚拟机中scp elasticsearch-analysis-ik-5.6.16.zip [email protected]...原创 2019-12-23 17:31:58 · 254 阅读 · 0 评论 -
进程管理工具Supervisor
进程管理工具Supervisor安装(只能使用python2版本安装)supervisor对python3支持不好,须使用python2sudo pip install supervisor输出默认配置运行echo_supervisord_conf命令输出默认的配置项,可以如下操作将默认配置保存到文件中# 切换到root用户再执行echo_supervisord_conf >...原创 2019-12-14 16:09:20 · 117 阅读 · 0 评论 -
Flask实战部署
1.购买阿里云服务器基础配置1.计费方式 - 按量付费2.地域选择 - 华南(深圳)3.实例 架构-> x86计算 分类-> 计算型 规格族-> 计算型c5 4vCPU 8GiB 价格: 1.260/小时4.操作系统 - centos 7.2 64位5.存储 - 高效云盘 40g网络和安全组 - 不用改系统配置自定义密码root ...原创 2019-12-14 16:11:50 · 219 阅读 · 0 评论 -
Gunicorn(绿色独角兽)
Gunicorn(绿色独角兽)Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器与各种Web框架兼容,实现非常简单,轻量级的资源消耗。Gunicorn直接用命令启动,不需要编写配置文件,相对uWSGI要容易很多。安装gunicornpip install gunicorn查看命令行选项# ...原创 2019-12-14 16:08:52 · 1349 阅读 · 0 评论 -
Flask项目中实现搜索
Flask项目中实现搜索python中使用elasticsearch安装pip install elasticsearch对于elasticsearch 5.x 版本 需要按以下方式导入from elasticsearch5 import Elasticsearch# elasticsearch集群服务器的地址ES = [ '127.0.0.1:9200']...原创 2019-12-09 17:18:24 · 2686 阅读 · 2 评论 -
Elasticsearch集群
Elasticsearch集群Elasticsearch 尽可能地屏蔽了分布式系统的复杂性。这里列举了一些在后台自动执行的操作:分配文档到不同的容器 或 分片 中,文档可以储存在一个或多个节点中按集群节点来均衡分配这些分片,从而对索引和搜索过程进行负载均衡复制每个分片以支持数据冗余,从而防止硬件故障导致的数据丢失将集群中任一节点的请求路由到存有相关数据的节点集群扩容时无缝整合新节点,...原创 2019-12-09 17:12:59 · 113 阅读 · 0 评论 -
Elasticsearch简介
Elasticsearch简介简介Lucene—基于Java的全文索引/检索引擎Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式、支持多用户的全文搜索引擎,**具有HTTP Web接口和无模式JSON文档。**所有其他语言可以使用 RESTful API 通过端口 *9200* 和 Elasticsearch 进行通信Elasticsearch是用Ja...原创 2019-12-09 17:07:28 · 157 阅读 · 0 评论 -
Flask中用户关注后消息推送
Flask用户关注业务之消息推送业务流程流程: 1.用户1关注用户2 2.修改mysql的关注信息 3.条用IM服务给用户2推送消息 4.返回结果需要用到的新技术: rabbitmq: 消息队列 使用步骤: web端: 1.创建KombuManager对象 2.使用KombuManager对象往消息队列发送消息 IM端: 1.创建...原创 2019-12-07 20:35:00 · 498 阅读 · 0 评论 -
Socket.IO框架
Socket.IO框架简介Socket.IO 本是一个面向实时 web 应用的 JavaScript 库,现在已成为拥有众多语言支持的Web即时通讯应用的框架。Socket.IO 主要使用WebSocket协议。但是如果需要的话,Socket.io可以回退到几种其它方法,例如Adobe Flash Sockets,JSONP拉取,或是传统的AJAX拉取,并且在同时提供完全相同的接口。尽管...原创 2019-12-07 20:33:59 · 982 阅读 · 2 评论 -
Websocket,HTTP,TCP
Websocket与HTTP,TCPHTTP和TCP的关系 Websocket和TCP的关系 WebSocket与HTTP同:建立在TCP之上,同http一样通过TCP来传输数据不同:HTTP协议为单向协议,即浏览器只能向服务器请求资源,服务器才能将数据传送给浏览器,而服务器不能主动向浏览器传递数据。分为长连接和短连接,短连接是每次http请求时都需要三次握手才能发送...原创 2019-12-07 20:30:45 · 1410 阅读 · 0 评论 -
WebSocket简介
WebSocket简介简介HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。在2008年诞生,2011年成为国际标准。现在基本所有浏览器都已经支持了。**WebSocket是一种在单个TCP连接上进行全双工通信的协议。**在WebSocket API中,浏览器和服务器只需要完成一次握手(不是指建立TCP连接的那个三次握手,是指在建立TCP连接...原创 2019-12-07 20:25:33 · 133 阅读 · 0 评论 -
即时通信(IM)
即时通信即时通讯(Instant Messaging)是一种基于互联网的即时交流消息的业务。类型:在线push适用:web页面 和 App自己构建IM服务器使用WebSocket采用成熟的框架方案Socket.IO对于App还可自己封装socket使用第三方IM服务商提供的服务离线push适用:App对于iOS,使用APNs对于andorid,使用FCM(...原创 2019-12-07 20:20:59 · 885 阅读 · 0 评论 -
Flask 与 APScheduler
Flask 与 APSchedulerBackgroundScheduler调度器 Scheduler负责管理定时任务BlockingScheduler: 作为独立进程时使用 from apscheduler.schedulers.blocking import BlockingScheduler scheduler = BlockingScheduler() sch...原创 2019-12-05 21:29:07 · 1199 阅读 · 0 评论 -
Flask首页新闻推荐与RPC
Flask与RPCRPC应用场景RPC更多的面向产品内部服务器间的通讯,目的时高效,不注重通用。选用RPC原因推荐系统: 作用:根据不同的用户id,经过计算,返回推荐的文章id现在需要解决的问题是: web应用程序如何跟推荐系统通讯。方案一: 把推荐系统封装成python语言能直接调用的类或者函数,直接调用。 缺点:耦合性高,维护困难方案二: 使用Flask或者...原创 2019-12-05 21:15:36 · 542 阅读 · 0 评论 -
gRPC简介
gRPC,Protocol Buffers简介简介gRPC是由Google公司开源的高性能RPC框架。gRPC支持多语言gRPC原生使用C、Java、Go进行了三种实现,而C语言实现的版本进行封装后又支持C++、C#、Node、ObjC、 Python、Ruby、PHP等开发语言gRPC支持多平台支持的平台包括:Linux、Android、iOS、MacOS、Windo...原创 2019-12-05 21:14:54 · 1609 阅读 · 0 评论 -
RPC简介
RPC简介什么是RPC?远程过程调用(英语:Remote Procedure Call,缩写为 RPC,也叫远程程序调用)是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。背景与用途在单台计算机中,我们可以通过程序调用来传递控制和数据...原创 2019-12-05 21:07:12 · 307 阅读 · 0 评论 -
Flask中修正统计数据(APScheduler)
Flask中定时修正统计数据(APScheduler)APScheduler简介APScheduler (advanceded python scheduler)是一款Python开发的定时任务工具。文档地址 https://apscheduler.readthedocs.io/en/latest/userguide.html#starting-the-scheduler特点:不...原创 2019-12-05 09:44:13 · 129 阅读 · 0 评论 -
Flask中用Redis存储统计数据
Flask使用Redis统计数据(持久化存储)Redis做持久化存储用户发表文章的统计: news_article_basic sql: select count(*) from news_article_basic where user_id=1; user_basic: article_count, fans_count sql: select article_coun...原创 2019-12-04 19:50:15 · 725 阅读 · 0 评论 -
Flask中用Redis缓存数据
Flask使用Redis缓存数据Redis配置配置集群app.config['REDIS_CLUSTER'] = [ {'host': '127.0.0.1', 'port': '7000'}, {'host': '127.0.0.1', 'port': '7001'}, {'host': '127.0.0.1', 'port': '7002'},]app...原创 2019-12-04 19:49:20 · 2288 阅读 · 0 评论 -
Flask中的Redis多级缓存
Flask中的Redis多级缓存配置Redis# 配置mysql数据库app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]:3306/toutiao'app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Falseapp.config['SQLALCHEMY_EC...原创 2019-12-04 19:48:26 · 332 阅读 · 0 评论 -
Flask中的oss存储(七牛云)
OSS对象存储七牛云存储需求在项目中,如用户头像、文章图片等数据需要使用文件存储系统来保存方案自己搭建文件系统服务选用第三方对象存储服务我们在项目中使用七牛云对象存储服务 http://www.qiniu.com。使用注册新建存储空间使用七牛SDK完成代码实现七牛Python SDK 网址 https://developer.qiniu.com/ko...原创 2019-12-04 19:45:32 · 1371 阅读 · 0 评论 -
软件开发
软件开发软件开发流程后端:技术选型->数据库设计->业务代码编写->单元测试->部署测试服务器->给测试人员测试产品介绍黑马头条是一款基于个性化推荐的科技资讯类阅读产品,类似于今日头条,产品分为以下几个终端:用户端用户获取个性化推荐资讯的终端,有阅读、关注、评论、智能客服(聊天机器人)等功能,分移动Web页面及iOS和安卓手机App。自媒...原创 2019-12-03 17:07:02 · 161 阅读 · 0 评论 -
Flask项目中的登录注册业务
Flask项目中的登录注册业务需求设置有效期,但有效期不宜过长,需要刷新。如何解决刷新问题?手机号+验证码(或帐号+密码)验证后颁发接口调用token与refresh_token(刷新token)Token 有效期为2小时,在调用接口时携带,每2小时刷新一次提供refresh_token,refresh_token 有效期14天在接口调用token过期后凭借ref...原创 2019-12-03 17:04:17 · 522 阅读 · 0 评论 -
Flask运行方式及错误追踪
Flask运行方式及错误追踪Flask运行方式终端启动workon 虚拟环境名export FLASK_APP=XXXX.mainexport FLASK_ENV=development# 创建日志文件夹mkdir XXXX/logs# 把访问日志和错误日志输出到access_app.logflask run -h 0.0.0.0 >> XXXX/logs/a...原创 2019-12-03 17:03:01 · 685 阅读 · 0 评论 -
Flask项目中的JWT禁用
Flask项目中的JWT禁用场景前提:用户在多个终端登录用户在修改了密码之后,需要颁发新的token,禁用还在有效期内的老token后台封禁用户解决方案在redis中使用set类型保存新生成的token客户端使用token进行请求时,如果验证token通过,则从redis中判断是否存在该用户的user:{}:token记录:若不存在记录,放行,进入视图进行业务处理...原创 2019-12-03 17:02:01 · 308 阅读 · 0 评论 -
Flask中的JWT
Flask中的JWTJWT认证Json Web Token(JWT)JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在两个组织之间传递安全可靠的信息。JWT是一个有着简单的统一表达形式的字符串:头部(Header)头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等。 JSON内容要经Base64 编码生成字符串成为Head...原创 2019-12-03 16:58:39 · 6673 阅读 · 2 评论 -
Flask之SQLAlchemy
Flask之SQLAlchemy简介SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy首次发行于2006年2月,并迅速地在Python社区中最广泛使用的ORM工具之一,不亚于D...原创 2019-12-03 16:51:39 · 1124 阅读 · 0 评论 -
Flask之SQLAlchemy操作
SQLAlchemy操作新增user = User(mobile="15270496981", name="xlz")# 生成sql语句db.session.add(user)# 执行sql语句db.session.commit()对于批量添加也可使用如下语法:user1 = User(mobile="15270496981", name="xlz1")user2 = Us...原创 2019-11-25 20:59:34 · 435 阅读 · 0 评论 -
REST接口开发核心
REST接口开发的核心任务RestAPI开发核心工作在开发REST API接口时,视图中做的最主要有三件事:将请求的数据(如JSON格式)转换为模型类对象操作数据库将模型类对象转换为响应的数据(如JSON格式)序列化Serialization在以上操作中,涉及到两个概念:序列化和反序列化。序列化将程序中的一个数据结构类型转换为其他格式(字典、JSON、XML等),...原创 2019-11-25 20:58:33 · 352 阅读 · 0 评论 -
RESTful风格
RESTful风格简单介绍REST(英文:,简称REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-...原创 2019-11-22 20:14:09 · 362 阅读 · 0 评论 -
flask-restful学习
flask-restful学习简介Flask-RESTful是用于快速构建REST API的Flask扩展。安装pip install flask-restful简单使用通过endpoint参数为路由起名api.add_resource(HelloResource, "/", endpoint='HelloWorld')使用步骤:导入Resource, Api...原创 2019-11-22 19:57:29 · 510 阅读 · 0 评论 -
Flask之cookie和session
Flask之cookie和sessioncookie的使用可以使用response设置cookie,使用request对象获取cookie设置cookie, max_age:有效时间from flask import Flask, make_response, requestapp = Flask(__name__)@app.route('/cookie1')def se...原创 2019-11-20 21:40:55 · 130 阅读 · 0 评论 -
Flask请求钩子与上下文
Flask请求钩子与上下文对象请求钩子在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求开始时,根据需求进行权限校验;在请求结束时,指定数据的交互格式;为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:before_f...原创 2019-11-20 21:20:46 · 241 阅读 · 0 评论 -
Flask之异常处理
flask之异常处理HTTP 异常主动抛出abort 方法抛出一个给定状态代码的 HTTPException 或者 指定响应,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。参数:code – HTTP的错误状态码抛出状态码的话,只能抛出 HTTP 协议的错误状态码# abort(404)abort(500)捕获错误...原创 2019-11-20 21:19:55 · 404 阅读 · 0 评论 -
Flask之请求与响应
Flask初步学习(2)处理请求场景在视图编写中需要读取客户端请求携带的数据时,如何才能正确的取出数据呢?请求携带的数据可能出现在HTTP报文中的不同位置,需要使用不同的方法来获取参数。URL路径参数(动态路由)例如,有一个请求访问的接口地址为/users/123,其中123实际上为具体的请求参数,表明请求123号用户的信息。此时如何从url中提取出123的数据?Flas...原创 2019-11-20 14:52:50 · 416 阅读 · 0 评论 -
Flask工程搭建及路由和蓝图
flask初步学习简介Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展...原创 2019-11-19 20:22:55 · 255 阅读 · 0 评论