0x00 内容概览 响应编组 基本使用 重命名属性 默认值 自定义字段及多值情况 Url及其他具体字段 复杂结构 列表字段 嵌套字段 api.model()工厂 clone实现复制 api.inherit实现多态 自定义字段 跳过值为None的字段 跳过嵌套字段中的None字段 使用JSON Schema定义模型 参考链接 0x01 响应编组(Response marshalling) Flask-RESTPlus提供了一种便捷的方式来控制你在响应中实际渲染的数据,以及在输入载荷(payload…
一.入门系列: Flask入门系列(一)–Hello World 项目开发中,经常要写一些小系统来辅助,比如监控系统,配置系统等等.用传统的Java写,太笨重了,连PHP都嫌麻烦.一直在寻找一个轻量级的后台框架,学习成本低,维护简单.发现Flask后,我立马被它的轻巧所吸引,它充分发挥了Python语言的优雅和轻便,连Django这样强大的框架在它面前都觉得繁琐.可以说简单就是美.这里我们不讨论到底哪个框架语言更好,只是从简单这个角度出发,Flask绝对是佼佼者.这一系列文章就会给大家展示Fla…
Flask开发系列之数据库操作 Python数据库框架 我们可以在Flask中使用MySQL.Postgres.SQLite.Redis.MongoDB 或者 CouchDB. 还有一些数据库抽象层代码包供选择,例如 SQLAlchemy 和MongoEngine.你可以使用这些抽象包直接处理高等级的 Python 对象,而不用处理如表.文档或查询语言此类的数据库实体. 使用Flask-SQLAlchemy管理数据库 我们选择使用的数据库框架是 Flask-SQLAlchemy(http://p…
Flask开发系列之Web表单 简单示例 from flask import Flask, request, render_template app = Flask(__name__) @app.route('/', methods=['GET', 'POST']) def home(): return render_template('home.html') @app.route('/signin', methods=['GET']) def signin_form(): return ren…
Flask开发系列之模板 本文对<FlaskWeb开发:基于python的Web应用开发实战>模板一节做的总结. Jinja2模板引擎 模板 模板是一个包含响应文本的文件,其中包含用占位变量表示的动态部分,其具体值只在请求的上下文中才能知道.使用真实值替代变量,再返回最终得到的响应字符串,这一过程成为渲染. Jinja2模板引擎 官网地址 Jinja2是纯python编写的模板引擎,它和Django类似提供non-XML语法,除此之外还支持内联表达式和一个可选的沙箱环境.Jinja2遵守BSD…
Flask开发系列之快速入门 文档 一个最小的应用 调试模式 路由 变量规则 构造 URL HTTP 方法 静态文件 模板渲染 访问请求数据 环境局部变量 请求对象 文件上传 Cookies 重定向和错误 关于响应 会话 消息闪现 日志记录 整合 WSGI 中间件 部署到 Web 服务器 一个最小的应用 from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '<h1>Hello Wor…
Flask开发初探 介绍 在日常开发中,如果需要开发一个小型应用或者Web接口,一般我是极力推崇Flask的,主要是因为其简洁.扩展性高. 从这篇文章开始,我会写一个关于Flask的系列文章,通过多个实例,由浅入深,融入自己使用Flask的心得,希望能帮助更多朋友学习Flask. 在此之前,建议你了解常见理论(包括视图.模板等),阅读Flask的官方文档,了解sqlalchemy,有一定的前端基础. 开发环境:ubuntu + Python2.7X + mysql 本系列文章代码将持续更新于my…
Flask的请求与响应 1 请求相关信息 request.method # 请求方法 request.args # get 请求的参数 request.form # post请求的参数 request.values # 所有的请求参数 request.args.get('id') request.args.getlist('ids') # 获取多个值 data = request.args data_dict = data.to_dict() # 通过to_dict() 方法 转化成 字典 fr…
https://www.bilibili.com/video/av51444410/?p=5 https://github.com/amandakelake/blog/issues/63 https://mp.weixin.qq.com/s/X3s4ysLfwclEOXIuKzOK2g Vue 进阶系列之响应式原理及实现 前端大全 3/17   以下文章来源于高级前端进阶 ,作者木 高级前端进阶 木易杨,资深前端工程师,跟着我每周重点攻克一个前端面试重难点.接下来让我带你走进高级前端的世界,在进…
目录 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask 框架 与 Django 框架对比 简单使用Flask提供服务 Flask 中的 Response(响应) Flask 中的 Request(请求) Flask 模板语言简单使用 Flask框架参考手册 Flask框架 请求与响应 & 模板语法 简单了解Flask框架 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活.轻便.安全且容易上手. 它可以很好地结合MVC模式进行…
Flask开发系列之Flask+redis实现IP代理池 代理池的要求 多站抓取,异步检测:多站抓取:指的是我们需要从各大免费的ip代理网站,把他们公开的一些免费代理抓取下来:一步检测指的是:把这些代理通过异步请求的方式,利用这些代理请求网站:如果能正常请求就证明代理可用,如果不能正常请求就证明代理不行,这时就可以把这个代理剔除掉,异步指的是:我们不需要一直等待代理请求网站,到得到response之后在执行相应的操作就可以了,异步可以提高检测效率. 定时筛选,持续更新:我们维护一个代理池,我们需…
flask的请求与响应 from flask import Flask,request,make_response,render_template,redirect app = Flask(__name__) @app.route("/",methods=["POST","GET"]) def index(): # 请求相关的信息 # print("请求方法",request.method)#请求方法 # print(&quo…
前言 Response对象负责对客户端的响应,每一个请求都会有一个Response对象,那么它在一个请求的声明周期内是怎么发挥作用的呢? Response对象 响应发生的位置 先回顾一下http请求的flask处理流程: 接收请求-->创建请求上下文-->请求上下文入栈-->创建该请求的应用上下文-->应用上下文入栈-->调用视图函数处理逻辑-->请求上下文出栈-->应用上下文出栈 Response对象在调用视图函数处理逻辑后就被创建,但是对客户端的响应在应用上下…
在flask服务端,有时候需要使用requests请求其他url,并将响应返回回去.查阅了flask文档,About Responses,可以直接构造响应结果进行返回. If a tuple is returned the items in the tuple can provide extra information. Such tuples have to be in the form (response, status, headers) or (response, headers) wh…
from flask import Flask from flask import request from flask import render_template from flask import redirect from flask import make_response app = Flask(__name__) @app.route('/login.html', methods=['GET', "POST"]) def login(): # 请求相关信息 # reque…
目录 1.flask请求与响应 2.闪现 3.请求扩展 4.中间件 5.LOCAL对象 6.偏函数 templates 1.flask请求与响应 from flask import Flask,request,make_response,render_template app = Flask(__name__) @app.route('/login.html', methods=['GET', "POST"]) def login(): # 请求相关信息 # request.metho…
设置请求 POST GET 设置post和get,在route中设置methods参数,除了post,get,还有put ,delete 等 @app.route('/http_test', methods=['GET', "POST"]) from flask import Flask, url_for, request @app.route('/http_test', methods=['GET', "POST"]) # 如果没有methods参数,默认只支持g…
前言 这次作业不仅需要我建立一个数据库(详情请点击这里),还需要我基于这个数据库写后端接口(注册和登录)供前端访问,接收前端的POST和GET请求,并将登录.注册是否成功传给前端. 本文介绍如何用Flask搭建后端,其中使用了pymysql操作mysql数据库,也会做这个部分的介绍. 正文 需要为前端提供的接口有两个:注册和登录,为此我定义了四个函数,分别是 select_user(userid, password) insert_user(userid, password, phone, em…
前言 flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的. 安装 pip install flask_uploads 基本使用 # extensions.py from flask_uploads import UploadSet files = UploadSet('files') # config.py UPLOADED_FILES_DEST = path.join(path.dirname(path.abspath(__fi…
flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具,支持热插拔. 安装 pip install Flask-WTF Flask-WTF其实是对wtforms组件的封装,使其支持对flask框架的热插拔. 简单使用 # app.py from flask import Flask, current_app, request, render_template from forms import MyForm app = Flask(__name…
前言 flask框架默认的路由和视图函数映射规则是通过在视图函数上直接添加路由装饰器来实现的,这使得路由和视图函数的对应关系变得清晰,但对于统一的API开发就变得不怎么美妙了,尤其是当路由接口足够多的时候,可读性会变差.flask_restful可以使我们像Django那样统一在一个地方设计所有的API规则. flask_restful 安装 pip install flask_restful 初始化 # __init__.py from flask import Flask, current_…
前言 为了尽量减少缓存穿透,同时减少web的响应时间,我们可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从数据库中查找.flask_caching插件就是提供这种功能的神器. flask_caching 安装 pip install Flask-Caching 初始化配置 # __init__.py from flask import Flask from extensions import cache…
flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制. 配置参数详解 SESSION_COOKIE_NAME 设置返回给客户端的cookie的名称,默认是"session";放置在response的头部: SESSION_COOKIE_DOMAIN 设置会话的域,默认是当前的服务器,因为Session是一个全局的变量,可能应用在多个app中: SESSION_COOKIE_PATH 设置会话的路径,即哪些路由下应该设…
现在继续学习在集成的框架中如何使用celery. 在Flask中使用celery 在Flask中集成celery需要做到两点: 创建celery的实例对象的名字必须是flask应用程序app的名字,否则celery启动会失败: celery必须能顺利加载初始化文件. celery在flask中初始化 由于celery进程的运行和flask进程的运行是相互独立的,但是在框架中我们希望只使用一份配置文件,这样可以简化配置的工作. from celery import Celery from flas…
前后端分离在开发调试阶段本地的flask测试服务器需要允许跨域访问,简单解决办法有二: 使用flask_cors包 安装 pip install flask_cors 初始化的时候加载配置,这样就可以支持跨域访问了 from flask_cors import CORS app = Flask(__name__) CORS(app, supports_credentials=True) if __name__ == "__main__": app.run() 对请求的Response…
sqlalchemy是一个操作关系型数据库的ORM工具.下面研究一下单独使用和其在flask框架中的使用方法. 直接使用sqlalchemy操作数据库 安装sqlalchemy pip install sqlalchemy 初始化及操作数据库 # 导入: from sqlalchemy import Column, String, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarati…
现在继续学习在集成的框架中如何使用celery. 在Flask中使用celery 在Flask中集成celery需要做到两点: 创建celery的实例对象的名字必须是flask应用程序app的名字,否则celery启动会失败: celery必须能顺利加载初始化文件. celery在flask中初始化 由于celery进程的运行和flask进程的运行是相互独立的,但是在框架中我们希望只使用一份配置文件,这样可以简化配置的工作. from celery import Celery from flas…
再Jinjia2中过滤器是一种转变变量输出内容的技术.··过滤器通过管道符号“|与变量链接,并且可以通过圆括号传递参数” .举例说明: {{my_variable|default('my_variable is not defined')}} my_variable 为变量,default为过滤器,my_variable is not defined是过滤器的参数.default过滤器的含义是:判断被转换的变量是否被定义过,如果没有被定义,则用字符串参数替换被转换的变量. 下面列出几个常用的过滤…
下面是一个jinjia2的简单模板的例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>jinjia2 Demo</title> </head> <body> <ul> {% for item in navigation %} <li><a hre…
Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 BSD 授权. Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能.Flask没有默认使用的数据库.窗体验证工具.   以上叙述来自百度百科.   BOSS说接下来的项目要用到Flask,便开始学习. 今天先从简单的登录开始. 1.开发工具用的是 汉化版的pycharm.免…