随笔分类 - Python
摘要:一、协程的概念 协程,又称微线程,纤程。英文名Coroutine。是一种用户态的轻量级线程。 子程序,或者称为函数,在所有语言中都是层级调用的,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕,所以程序调用是通过栈实现的,一个线程就是执行一个子程序,子程序调用
阅读全文
摘要:1、线程之间资源共享和threading.local 代码: 1 from threading import local, Thread 2 3 4 i = None 5 6 7 def func(num): 8 global i 9 i = num 10 print(i) 11 12 13 thr
阅读全文
摘要:1、蓝图(Blueprint)的作用 1 from flask import Blueprint (1)帮助划分flask应用程序的目录结构 我们最初学习的flask应用程序都是被写在一个.py文件中的,但是当我们的flask应用程序稍微大一点的时候(包含模板、静态文件等资源),就不太可能使用一个.
阅读全文
摘要:1、Flask中间件 Flask的中间件与django的不太一样,反而Flask的before_request和after_request这两个装饰器的功能跟django中间件很像,所以如果想实现在请求到达视图函数之前的操作和处理响应的操作,可以使用这两个装饰器实现。Flask中间件所处的位置比较早
阅读全文
摘要:1、flask闪现的理解 一个好的基于GUI的应用程序会向用户提供有关交互的反馈。例如,桌面应用程序使用对话框或消息框,JavaScript使用警报用于类似目的。在Flask Web应用程序中生成这样的信息性消息很容易。Flask框架的闪现系统可以在一个视图中创建消息,并在名为next的视图函数中呈
阅读全文
摘要:1、常用的装饰器有:before_request、after_request(这两个装饰器有点类似于django的中间件组件) 源码: 1 def preprocess_request(self): 2 """Called before the request is dispatched. Call
阅读全文
摘要:1、session的本质 session是一个SecureCookieSession类(继承自CallbackDict、SessionMixin)的实例化对象,可以将其当做一个字典,用于存储用户的登录信息。flask的session与django的session不同之处在于,在服务器端将登录信息保存
阅读全文
摘要:1、常用的请求信息 1 @app.route("/home") 2 def home(): 3 from flask import request 4 # 常用请求信息 5 print(request.method) 6 print(request.args) 7 print(request.for
阅读全文
摘要:1、FBV与CBV FBV(function base views):基于函数的视图,就是在视图里使用函数处理请求 CBV(class base views):基于类的视图,就是在视图里使用类处理请求。 2、flask中的FBV和CBV使用方式(两种方式都必须通过add_rule_url方法将其添加
阅读全文
摘要:在Flask中,添加路由有两种方式:(一般情况下都是用第一种方式) 第一种:常见的装饰器模式 @app.route("/") def index(): return "Hello World" 通过这种方式,将rule与视图函数对应起来 第二种:通过阅读装饰器模式添加路由的源码发现 def rout
阅读全文
摘要:from flask import Flask app = Flask(__name__) # 一共有5中配置的方式,但是常用的也就两种 # 当应用比较大时,可以将配置放在一个类中,整体来维护 # 当应用比较小时,可以直接使用app.secret_key这种方式来赋值 # 注意:from_objec
阅读全文
摘要:from flask import Flask, render_template, session, request, redirect app = Flask(__name__) app.secret_key = "fafFAVGVvvbGbBfWFwvgWb" @app.route("/") d
阅读全文
摘要:1、Flask与众多Web框架的对比 django:大而全,重型武器,组件丰富(ORM、Admin、Middleware、Form、ModelForm、Session、Cache、Signal、CSRF等)。 flask:短小精悍,可扩展性强,第三方组件丰富。 tornado:短小精悍,通过异步非阻
阅读全文
摘要:1、验证码生成代码(注意:代码中引用了三个字体文件,因为必须在该代码文件的同级路径下创建fonts目录,里面需要三个字体文件,路径如下:https://gitee.com/will-smith/dj32_test/tree/master/utils/verify/fonts),还需要安装pillow
阅读全文
摘要:1、重构目录 2、基础配置(数据库、缓存、日志等) 相关包依赖 说明: 1、django2的版本必须装4.11.0的django_redis,如果不指明django_redis的版本,就会默认安装最新的版本,这是就会自动卸载2.*的django,安装3.*的django,引起版本变动,造成一系列不必
阅读全文
摘要:from abc import ABCMeta, abstractmethod """ 1、设计要点: 过滤器模式中主要有三个角色,在设计过滤模式时要找到并区分这些角色。 (1)过滤的目标:即要被过滤的对象,通常是一个对象数组(对象列表)。 (2)过滤器:负责过滤不需要的对象,一般一个规则对应一个类
阅读全文
摘要:""" MVC(Model、View、Controller) >MVP(Model、View、Presenter) >MVVM(Model、View、ViewModel) 1、设计要点: MVC模式有三个关键角色,在设计MVC模式时要找到并区分这些角色。 (1)模型(Model):负责数据的存储与管
阅读全文
摘要:# 回调模式:把函数作为参数,传递给另一个函数,延迟到另一个函数的某个时刻执行的过程叫回调。 # 缺点:回调地狱 # 面向过程的实现方式 def callback(*args, **kwargs): """回调函数""" # TODO 函数体的实现 pass def otherFunc(func.
阅读全文
摘要:from abc import ABCMeta, abstractmethod # 解释器模式:定义一个语言,定义它的文法的一种表示;并定义一个编辑器,该解释器使用文法来解释语言中的文法 class Expression(metaclass=ABCMeta): """抽象表达式""" @abstra
阅读全文