上下文

[转载]application.properties和 bootstrap.yml 区别

情到浓时终转凉″ 提交于 2019-12-05 00:36:22
原文: https://www.jianshu.com/p/0eb06eb9cf1f 1.首先yml和properties文件都是属于配置文件,功能一样。主要是区别于application和bootstrap的加载顺序。 Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载,就像application.yml一样,但是用于应用程序上下文的引导阶段。 2.典型场景 1.当使用 Spring Cloud Config Server的时候,你应该在 bootstrap.yml里面指定 spring.application.name和 spring.cloud.config.server.git.uri 2.一些加密/解密的信息 技术上,bootstrap.yml由父Spring ApplicationContext加载。父ApplicationContext被加载到使用application.yml的之前。 当使用 Spring Cloud 的时候,配置信息一般是从 config server 加载的,为了取得配置信息(比如密码等),你需要一些提早的或引导配置。因此,把 config server 信息放在 bootstrap.yml,用来加载真正需要的配置信息。 3.属性覆盖问题

浅谈 Python 的 with 语句

断了今生、忘了曾经 提交于 2019-12-05 00:13:36
浅谈 Python 的 with 语句 前言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用(参考 What's new in Python 2.6? 中 with 语句相关部分介绍)。with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。 术语 要使用 with 语句,首先要明白上下文管理器这一概念。有了上下文管理器,with 语句才能工作。 下面是一组与上下文管理器和with 语句有关的概念。 上下文管理协议(Context Management Protocol) :包含方法 __enter__() 和 __exit__(),支持 该协议的对象要实现这两个方法。 上下文管理器(Context Manager) :支持上下文管理协议的对象,这种对象实现了 __enter__() 和 __exit__() 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文, 负责执行 with 语句块上下文中的进入与退出操作。通常使用 with 语句调用上下文管理器, 也可以通过直接调用其方法来使用。

Django上下文处理器

三世轮回 提交于 2019-12-05 00:09:53
什么是上下文处理器 上下文处理器是可以返回一些数据,在全局模板中都可以使用。比如登录后的用户信息,在很多页面中都需要使用,那么我们可以放在上下文处理器中,就没有必要在每个视图函数中都返回这个对象。 自定义上下文处理器 你可以根据这个上下文处理器是属于哪个app,然后在这个app中创建一个文件专门用来存储上下文处理器。或者是你也可以专门创建一个Python包,用来存储所有的上下文处理器。 这里我是专门创建一个Python包:context_processors.py。 用我们的个人博客讲解,title和导航是需要共用的,编写我们的上下文处理器,也就是一个函数。 def nav_title_process(request): '''上下文管理器,这个函数里面返回的每个变量,在每个页面里面都可以用''' navs = ['我的相册','我的日记','python','接口测试'] title = '我的个人博客' content = {'daohang':navs,'title':title,} return content 编写好这个函数之后,我们还需要在settings.py的TEMPLATES中去将我们的上下文处理器添加进去。 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates',

Qt Linguist介绍【转】

*爱你&永不变心* 提交于 2019-12-04 23:17:47
简介 Qt提供了一款优秀的支持Qt C++和Qt Quick应用程序的翻译工具。发布者、翻译者和开发者可以使用这款工具来完成他们的任务。 发布者:承担了全面发布应用程序的责任。通常,他们协调开发者和翻译者的工作,可以使用lupdate工具同步源代码,进行翻译,使用lrelease同步工具为发布应用程序创建运行时使用的翻译文件。 翻译者:可以使用Qt Linguist工具翻译应用程序的文本。当然,这必须要有专业的翻译知识。 开发者:必须创建Qt应用程序能够使用的翻译文本。也应该帮助翻译者识别短语出现的场景。 以上有三种角色-发布者、翻译者、开发者,当然很多情况下,其实就是一种,那就是程序猿自己,大家都懂得。 简介 发布者 创建翻译文件 使用lupdate 使用lrelease 翻译者 翻译字符串 更改快捷键 Alt快捷键 Ctrl快捷键 处理带编号的参数 更改目标语言环境 选择上下文进行翻译 选择字符串进行翻译 开发者 指定翻译源 使用条件来隐藏QML来源 国际化应用 部署翻译 发布者 Qt Linguist为发布者提供了两款工具-lupdate和lrelease。它们可以处理qmake项目文件,或直接在文件系统上运行。 创建翻译文件 要创建翻译文件: 运行lupdate产生一组翻译源(TS)文件,里面含有所有用户可见的文本,但未经过翻译。 把生成的TS文件交给翻译者(谁使用Qt

Flask中的http请求与响应

不问归期 提交于 2019-12-04 22:00:55
参考:《Flask web开发》 Flask 上下文全局变量 Flask使用上下文临时将某些对象变为全局可访问。在Flask中有两种上下文: 应用上下文 和 请求上下文 。 变量名 上下文 说明 current_app 应用上下文 当前应用的应用实例 g 应用上下文 处理请求时用作临时存储的对象,每次请求都会重设这个对象 request 请求上下文 请求对象,封装了客户端发出的HTTP请求中的内容 session 请求上下文 用户会话,值为一个字典,存储请求之间需要“记住”的值 请求对象 Flask通过上下文变量request对外开放请求对象,这个对象包含了客户端发送的HTTP请求的全部信息。常用的属性和方法有: 属性或方法 说明 form 一个字典,存储请求提交的所有表单字段(post请求) args 一个字典,存储通过URL查询字符串传递的所有参数(get请求) values 一个字典,form和args的合集 cookies 一个字典,存储请求的所有cookie headers 一个字典,存储请求的所有HTTP头部 files 一个字典,存储请求上传的所有文件 get_data() 返回请求主体缓冲的数据 get_json() 返回一个字典,包含解析请求主体后得到的JSON blueprint 处理请求的Flask蓝本的名称 endpoint 处理请求的端点的名称

从EFCore上下文的使用到深入剖析DI的生命周期最后实现自动属性注入

烂漫一生 提交于 2019-12-04 21:26:24
故事背景 最近在把自己的一个老项目从Framework迁移到.Net Core 3.0,数据访问这块选择的是EFCore+Mysql。使用EF的话不可避免要和 DbContext 打交道,在Core中的常规用法一般是:创建一个 XXXContext 类继承自 DbContext ,实现一个拥有 DbContextOptions 参数的构造器,在启动类 StartUp 中的 ConfigureServices 方法里调用 IServiceCollection 的扩展方法 AddDbContext ,把上下文注入到DI容器中,然后在使用的地方通过构造函数的参数获取实例。OK,没任何毛病,官方示例也都是这么来用的。但是,通过构造函数这种方式来获取上下文实例其实很不方便,比如在Attribute或者静态类中,又或者是系统启动时初始化一些数据,更多的是如下一种场景: public class BaseController : Controller { public BloggingContext _dbContext; public BaseController(BloggingContext dbContext) { _dbContext = dbContext; } public bool BlogExist(int id) { return _dbContext.Blogs.Any(x

iOS - 图形上下文绘图

最后都变了- 提交于 2019-12-04 21:20:18
drawRect调用场景 视图第一次显示的时候会调用。这个是由系统自动调用的,主要是在 UIViewController 中 loadView 和 viewDidLoad 方法调用之后; 如果在 UIView 初始化时没有设置 rect 大小,将直接导致 drawRect 不被自动调用 该方法在调用 sizeThatFits 后被调用,所以可以先调用 sizeToFit 计算出 size ,然后系统自动调用 drawRect: 方法; 通过设置 contentMode 属性值为 UIViewContentModeRedraw ,那么将在每次设置或更改 frame 的时候自动调用 drawRect: ; 直接调用 setNeedsDisplay ,或者 setNeedsDisplayInRect: 触发 drawRect: ,但是有个前提条件是rect不能为0; drawRect使用注意事项 如果子类直接继承自UIView,则在drawRect 方法中不需要调用super方法。若子类继承自其他View类则需要调用super方法以实现重绘 若使用UIView绘图,只能在 drawRect: 方法中获取绘制视图的 contextRef 。在其他方法中获取的 contextRef 都是不生效的; drawRect: 方法不能手动调用,需要调用实例方法 setNeedsDisplay 或者

MATLAB如何绘制以R2018b开头的多边形?

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 21:15:37
创建可定制的多边形ROI 折叠全部页面 句法 roi = drawpolygon roi = drawpolygon(ax) roi = drawpolygon( ___,Name,Value) 描述 例 roi = drawpolygon 创建一个 Polygon ROI对象,并允许在当前轴上交互式绘制多边形感兴趣区域(ROI)。 要绘制ROI,请将指针放在图像上。 光标变为fl形。 单击以绘制多边形的顶点,然后拖动以绘制顶点之间的线。 要完成ROI,请双击鼠标按钮。 有关使用ROI的更多信息,包括键盘快捷键和上下文菜单选项,请参阅 提示 。 注意 drawpoint 是用于创建 Polygon ROI对象 的便捷功能 。 如果直接调用来创建ROI对象,则 Polygon 必须调用 draw 对象函数以启用ROI的交互绘制。 相反,该 drawpolygon 函数创建ROI对象并 draw 为您 调用该 对象函数。 无论采用哪种方式创建ROI,都可以使用对象属性,对象功能和事件通知来自定义其外观和行为。 有关使用这些功能的更多信息,请参见 技巧 。 roi = drawpolygon( ax ) 在所指定的轴上创建ROI ax 。 roi = drawpolygon( ___, Name,Value ) 使用一个或多个名称/值对修改ROI的外观和行为。 未指定的名称

设计模式--策略模式

你。 提交于 2019-12-04 20:20:40
设计模式--策略模式 1、策略模式    策略模式: 定义一些列算法,把它们一个个的封装起来,并且使它们可以相互替换,该模式可以使得算法独立于使用它的客户而变化。 2、策略模式的结构 角色 策略: 策略是一个接口,该接口定义了若干算法,也即是若干的抽象方法; 上下文: 上下文是依赖于策略接口的类,即上下文包含策略声明的变量,上下提供一个方法,该方法委托策略变量调用具体策略所 具体策略: 具体策略是实现策略接口的类,它需要实现策略接口中定义的抽象方法。 类图 3、策略模式举例 策略接口:Strategy.java package com.nick.pattern.strategy; /** * 抽象策略接口:定义若干抽象方法 * @author nick */ public interface Strategy { public abstract void algorithm(); } 上下文:Context.java package com.nick.pattern.strategy; /** * 上下文类 * @author nick */ public class Context { Strategy strategy; //定义策略变量 public void setStrategy(Strategy strategy){ this.strategy=strategy; /

css 块级格式化上下文(BFC)

情到浓时终转凉″ 提交于 2019-12-04 18:50:33
一、块级格式化上下文(BFC) 1、什么是块级格式化上下文? Block Formatting Contexts (BFC,块级格式化上下文)就是一个块级元素 的渲染显示规则 (可以把 BFC 理解为一个封闭的大箱子,,容器里面的子元素不会影响到外面的元素) 2、触发BFC的条件如下: 根元素 float的值不为none。 overflow 除了 visible 以外的值(hidden,auto,scroll) display的值为table-cell, table-caption, inline-block中的任何一个。 绝对定位元素:position (absolute、fixed) 弹性盒 flex boxes (元素的 display: flex 或 inline-flex) 3、BFC 的布局规则: 内部的盒子会在垂直方向,一个个地放置; BFC是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然 属于同一个BFC的 两个相邻Box的 上下margin会发生重叠 ; 计算BFC的高度时,浮动元素也参与计算 每个元素的左边,与包含的盒子的左边相接触,即使存在浮动也是如此; BFC的区域不会与float重叠; 4、BFC特性 1.同一BFC下外边距会发生折叠: 代码如下: <!doctype html> <html> <head> <meta