一.flask中的CBV 对比django中的CBV,我们来看一下flask中的CBV怎么实现? from flask import Flask, render_template, url_for, views app = Flask(__name__) class Login(views.MethodView): def get(self): print(url_for("my_login")) # /login return render_template("login.…
一 . flask中的CBV 相对于Django中的CBV,让我们来看看flask中的CBV是如何实现的 ? from flask import Flask, render_template, url_for, views app = Flask(__name__) class Login(views.MethodView): def get(self): print(url_for("my_login")) # /login return render_template("…
一.CBV使用 class base view 和django中类似 class Login(views.MethodView): # methods=["POST","GET"] # decorators = [] def get(self): return "login" def post(self): return "post_login" app.add_url_rule("/login",view…
Flask中的CBV以及正则表达式 一.CBV def auth(func): def inner(*args, **kwargs): print('before') result = func(*args, **kwargs) print('after') return result return inner class IndexView(views.View): methods = ['GET'] decorators = [auth, ] def dispatch_request(sel…
Flask中的CBV 第一种 class Index(views.MethodView): methods = ['GET', 'POST'] decorators = [] def get(self): return 'GET' def post(self): return 'POST' app.add_url_rule('/index', view_func=Index.as_view(name='index')) # name='index'相当于设置endpoint Index.as_v…
flask中CBV使用 from flask import Flask, views app = Flask(__name__) class Login(views.MethodView): methods = ['POST', 'GET'] # 如果需要在CBV中加装饰器的话,括号里就是装饰器的内存地址,可以传多个 decorators = () def get(self): print('get 请求') return 'login get' def post(self): print('p…
from flask import Flask, views, render_template, request app = Flask(__name__) app.config['DEBUG'] = True class Upload(views.MethodView): def get(self): return render_template('upload.html') def post(self): my_file = request.files.get('file') print(m…
# 上下文: ### Local对象:在`Flask`中,类似于`request`的对象,其实是绑定到了一个`werkzeug.local.Local`对象上.这样,即使是同一个对象,那么在多个线程中都是隔离的.类似的对象还有`session`以及`g`对象. ### Thread Local对象:只要满足绑定到这个对象上的属性,在每个线程中都是隔离的,那么他就叫做`Thread Local`对象. ### 应用上下文和请求上下文:应用上下文和请求上下文都是存放到一个`LocalStack`的栈…
一.特殊装饰器(中间件) 1.before_request 在请求进入视图函数之前 @app.before_request def look(): 2. after_request 在结束视图函数之后,响应返回客户端之前 @app.after_request def af1(res) from flask import Flask, request, session, redirect app = Flask(__name__) app.secret_key = "#$%^&*(&quo…
一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子. 请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子: before_first_request 在处理第一个请求前执行 before_request 在每次请求前执行 如果在某修饰的函数中返回了一个响应,视图函…
1.关于session flask是带有session的,它加密后存储在用户浏览器的cookie中,可以通过app.seesion_interface源码查看 from flask import Flask,session app = Flask(__name__) app.secret_key = 'aptx4869' # 必须要指定这个参数 @app.route('/login') def login(): #... # 设置session session['user_info'] = 'n…
目录 Flask - 特殊装饰器 和 Flask工作结构模式 @app.errorhandler() @app.before_request @app.after_request FBV和CBV Flask - 特殊装饰器 和 Flask工作结构模式 @app.errorhandler() 作用: 重定义错误返回信息! @app.errorhandler(404) def error404(a): return f"你要查看的页面,被怪兽吃了!{a}" @app.before_requ…
请求上下文和应用上下文 请求上下文:可以简单理解为客户端与服务器之间数据交互请求的容器 请求上下文对象有:request.Session request:封装了HTTP请求的内容,针对的是http的请求 Session:用来记录请求回话中的信息,针对的是用户的信息 应用上下文:应用于存储应用程序中的变量,它的作用主要是帮助request获取当前的应用,它 是伴随request而生,随request而死 应用上下文对象有:current_app.g current_app存储的变量: 应用程序启动…
在模板中渲染表单 为了能够在模板中渲染表单,我们需要把表单类实例传入模板.首先在视图函数里实例化表单类LoginForm,然后再render_template()函数中使用关键脑子参数form将表单实例传入模板,例如:form/app.py #传入表单类实例 from forms import LoginForm @app.route('/basic') def basic(): form=LoginForm() return render_template('login.html',form=…
一.简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装: pip3 install wtforms 二.简单使用wtforms组件 1.用户登录 具体代码: from flask import Flask,render_template,request,redirect from wtforms.fields import core from wtforms.fields import html5 from wtfo…
一.安装 1.flask_session 不想将Session的信息存放在Cookie 将Session存放在Redis Cookie中保存Session的ID flask中的session是直接将数据存在cookie中, 而flask_session能更安全,简便的在flask中使用session,在浏览器的cookie中存入session的sid,我们使用这个插件结合redis数据库来使用. 搜索结果有很多,安装下图这个 2.redis 插件安装 二.使用 redis简单使用 from re…
一.Flask中的request方法 1.数据相关 #flask中request,render_template等方法要通过引包的方式引入 from flask import request ​ request.args # 获取URL中的数据 request.form # 获取form表单中(FormData)的数据 request.values # 获取args+form 知道就可以了 request.data # 流, 获取请求体中的原始数据 request.json # 字典, 请求头中…
flask的路由中有一些参数 使用案例 from flask import Flask, render_template, url_for, session, request, redirect app = Flask(__name__) app.secret_key = "wang" def confirm(func): def inner(*args, **kwargs): if session.get('auth'): return func(*args, **kwargs) e…
完善了一下慕课网实战中的post接口开发,得到了一些进步: 代码如下: #coding=utf-8 from flask import Flask from flask import request from flask import jsonify app = Flask(__name__) # GET请求接口: https://192.168.1.101:5000/ @app.route('/') def Home(): data = { "username": "csk…
知识点回顾 1.flask依赖wsgi,实现wsgi的模块:wsgiref,werkzeug,uwsgi 2.实例化Flask对象,里面是有参数的 app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx') # 其中,template_folder='templates'为配置模板文件夹名称,默认为templates,static_url_path='/xxxxxx'为配置静态文件夹名称,默认为stati…
一.Flask介绍(轻量级的框架,非常快速的就能把程序搭建起来) Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. “微”…
因为0.1版本整体代码大概只有350行,比较简单.所以本篇文章会以Flask 0.1版本源码为基础进行剖析Flask应用的启动过程. Flask参考资料flask,官网有一个最简单app: from flask import Flask app = Flask(__name__) @app.route('/hello') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run(host='0.0.0.…
转载自 http://python.jobbole.com/87118/ 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转移』,估计读者看到这个词也是云里雾里的,我当初也是!这里,我们先不纠结这个词到底是什么意思.事实上,REST 是一种 Web 架构风格,它有六条准则,满足下面六条准则的 Web 架构可以说是 Restuful 的. 客户端-服务器(Client-Server)服务器和客户端之间有明确的界限.一方面,…
1 什么是flask Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . 百度百科:点击前往 中文文档:点击前往 2 利用pip安装flask模块 2.1 前提 安装好python.配置好环境变量 2.2 查看python版本 2.3 查看已经安装好的模块 2.4 利用pip安装flash模块 注意:为了速度更快建议将pip的源换成豆瓣的 pip3 install -i https://pypi.do…
初始化 使用前必须创建一个应用实例 from flask import Flask app = Flask(__name__) 路由和视图函数 请求流程 客户端(web浏览器)-->  web服务器 --> Flask应用实例 路由概念 应用实例需要知道对每个 URL 的请求要运行哪些代码, 所以保存了一个 URL 到 Python 函数的映射关系.处理 URL 和函数之间关系的程序称为路由. 定义路由 使用app.route 装饰器 @app.route('/') def index():…
Flask是一个基于 Python 开发并且依赖 jinja2 模板和 Werkzeug WSGI 服务的一个微型框架,对于 Werkzeug 本质是 Socket 服务端,其用于接收 http 请求并对请求进行预处理,然后触发 Flask 框架,开发人员基于 Flask 框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助 jinja2 模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器. 准备 安装 pip3 install…
1.使用模板: @app.route('/') def home(): return render_template("homepage.html")#homepage.html在templates文件夹下 2.使用 send_from_directory root = os.path.join(os.path.dirname(os.path.abspath(__file__)), "html")#html是个文件夹 @app.route('/') def home…
常用的参数应用实例 from flask import Flask, render_template, url_for, session, request, redirect app = Flask(__name__, template_folder="templates111", static_folder="jingtaimulu", static_url_path='/static') # √ app.secret_key = "wang"…
### session:1. session的基本概念:session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个概念.一个服务器存储授权信息的解决方案,不同的服务器,不同的框架,不同的语言有不同的实现.虽然实现不一样,但是他们的目的都是服务器为了方便存储数据的.session的出现,是为了解决cookie存储数据不安全的问题的.2. session与cookie的结合使用: * session存储在服务器端:…
### 什么是cookie:在网站中,http请求是无状态的.也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户.cookie的出现就是为了解决这个问题,第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了.cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB.…