context

基于python开发的口罩供需平台

不问归期 提交于 2020-03-18 22:32:08
主要是对需求表Product进行设计,在此项目中,我们需要标题、联系人、电话等字段。可参考models.py文件。 设计字段如下: ​ class Product(models.Model): list_display = ("title", "type", "location") title = models.CharField(max_length=100,blank=True, null=True) type = models.IntegerField(default=0) pv = models.IntegerField(default=0) contact = models.CharField(max_length=10,blank=True, null=True) location = models.CharField(max_length=20,blank=True, null=True) phone = models.CharField(max_length=13, blank=True, null=True) weixin = models.CharField(max_length=50, blank=True, null=True) status = models.BooleanField(default=False) timestamp = models

仅此一文让你明白事务隔离级别、脏读、不可重复读、幻读

…衆ロ難τιáo~ 提交于 2020-03-18 19:52:08
网络上关于这方面的博文有些偏理论,有些通篇代码,都不能深入浅出。本文用图文并茂的方式,配上行云流水般的代码,非要摆清楚这个问题。相关代码已提交至码云(点击 这里 下载)。 事务是现代关系型数据库的核心之一。在多个事务并发操作数据库(多线程、网络并发等)的时候,如果没有有效的避免机制,就会出现以下几种问题: 第一类丢失更新(Lost Update) 在完全未隔离事务的情况下,两个事务更新同一条数据资源,某一事务完成,另一事务异常终止,回滚造成第一个完成的更新也同时丢失 。这个问题现代关系型数据库已经不会发生,就不在这里占用篇幅,有兴趣的可以自行百度。 脏读(Dirty Read) A事务执行过程中,B事务读取了A事务的修改。但是由于某些原因,A事务可能没有完成提交,发生RollBack了操作,则B事务所读取的数据就会是不正确的。这个未提交数据就是脏读(Dirty Read)。脏读产生的流程如下: 可以用EF Core模拟此过程: class TestReadUncommitted :TestBase { private AutoResetEvent _autoResetEvent; [Test] public void ReadUncommitted() { using (var context = _autofacServiceProvider.GetService

SpringBoot之异常报告器

时光总嘲笑我的痴心妄想 提交于 2020-03-18 16:52:54
一、异常报告器介绍 1.1 作用 收集错误信息,用于向用户报告错误原因。 1.2 接口定义 @FunctionalInterface public interface SpringBootExceptionReporter { // 向用户报告失败信息 boolean reportException(Throwable failure); } 二、源码解析 2.1 run 初始化 public ConfigurableApplicationContext run(String... args) { ...... Collection<SpringBootExceptionReporter> exceptionReporters = new ArrayList<>(); try { ...... // 获取所有 SpringBootExceptionReporter 实现类 exceptionReporters = getSpringFactoriesInstances(SpringBootExceptionReporter.class, new Class[] { ConfigurableApplicationContext.class }, context); ...... } catch (Throwable ex) { handleRunFailure(context, ex

Android线控的使用

允我心安 提交于 2020-03-18 15:41:40
实现方式一:只能在程序为前台时监控 在Activity中即可监听 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { Log.i("MainActivity-onKeyUp", "" + keyCode); switch (keyCode) { case KeyEvent.KEYCODE_HEADSETHOOK: Toast.makeText(MainActivity.this, "Pause_Up", Toast.LENGTH_SHORT).show(); return false; } return super.onKeyUp(keyCode, event); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { Log.i("MainActivity-onKeyDown", "" + keyCode); switch (keyCode) { case KeyEvent.KEYCODE_HEADSETHOOK: Toast.makeText(MainActivity.this, "Pause_Down", Toast.LENGTH_SHORT).show(); return false; } return super

LDAP/SASL/GSSAPI/Kerberos编程API(2)--krb5客户端

僤鯓⒐⒋嵵緔 提交于 2020-03-18 12:44:58
krb5 API有两个可用的库:MIT和Heimdal,两个库的API不一样,一方客户端的API连接上另一方服务端基本上是没问题的. API中的kadmin两个库则是完全不兼容,可从MIT和Heimdal两个的kadmin应用工具看出,连接对方的kadmin服务端是不成功的. kadmin目的是为远程操控Kerberos服务器,一般我们开发Kerberos应用很少以此为目标,都是直接使用它们各自的kadmin应用工具,所以kadmin不兼容也没多大问题. 我们的目标是Kerberos认证功能,所以使用MIT或是Heimdal都没问题. MIT是主流,本文以此为例 一.实验环境 平台 : debian 11 我已事先安装好一台Kerberos服务器(KDC),领域为CTP.NET,并创建了krblinlin@CTP.NET用户主体. 二.客户机安装开发库 root@debian:/# apt-get install libkrb5-dev 三.最简单krb5认证--不生成票据 1.源代码 //源文件名:krbonlylogin.c #include <stdio.h> #include <krb5.h> int main(void) { krb5_context context = NULL; krb5_error_code krberr; krb5_principal

Spring MVC上传和下载

爷,独闯天下 提交于 2020-03-17 09:03:01
某厂面试归来,发现自己落伍了!>>> 一、简介: Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等 优点:它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所没有的优势。而且框架本身有代码,看起来容易理解。 二、SpringMVC几个核心类: 控制器核心类:org.springframework.web.servlet.DispatcherServlet - 配置web.xml 加载配置文件核心类:org.springframework.web.context.ContextLoaderListener – spring的配置文件 处理url影射核心类:org.springframework.web.servlet.handler

微信平台接入Web页面功能接口(C#)

主宰稳场 提交于 2020-03-17 06:07:10
微信平台接入web页面功能接口 今年因工作需要,通过微信平台接入公司的Wap页面,回忆下,记录内容,方面以后使用。 1.成为开发者后,你才可以使用公众平台的开发功能。需要填写URL和ToKen,接口配置信息。 2.服务器端开发如下接口,等待微信服务器调用。 URL : 用来接收微信服务器数据的接口URL, http://192.168.0.199/weixin/****.ashx (该地址不固定,可以由后台开发者根据实际情况自己拟定,但只支持80端口) Token : 开发者可以任意拟定,已备用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。 请求方式 : Get 接收参数: 参数 描述 signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 timestamp 时间戳 nonce 随机数 echostr 随机字符串 响应微信服务器: 开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。 加密 / 校验流程如下: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3.

spring整合cxf,轻松编写webService客户端、服务端

大兔子大兔子 提交于 2020-03-17 04:05:31
WebService是一种跨编程语言、跨操作系统平台的远程调用技术,广泛应用在实际开发,接口实现,系统集成。 服务端 List item 添加maven依赖 项目中除了spring相关的依赖以外,还需添加下面两个依赖。 < dependency > < groupId > org.apache.cxf </ groupId > < artifactId > cxf-rt-frontend-jaxws </ artifactId > < version > 3.3.5 </ version > </ dependency > < dependency > < groupId > org.apache.cxf </ groupId > < artifactId > cxf-rt-transports-http </ artifactId > < version > 3.3.5 </ version > < scope > compile </ scope > </ dependency > 配置web.xml 除了常规的spring相关配置,这里需要添加cxfServlet的配置。 <!-- 1.cxfServlet配置--> < servlet > < servlet-name > cXFServlet </ servlet-name > < servlet-class > org

小谈Jquery框架

◇◆丶佛笑我妖孽 提交于 2020-03-17 04:02:05
现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发速度。但是好多人也只是停留在了会用的基础上,我个人觉得会用一个框架不算什么,只能说明你对那个框架比较熟悉,知道里面的思想和实现才是王道。有好多大牛对Jquery框架进行了剖析,今天我只是根据我的见解来分析一下。 一段代码如下: (function (win) { var _$ = function (selector, context) { return new _$.prototype.Init(selector, context); } _$.prototype = { Init: function (selector, context) { this.elements = []; var context = context || document; if (context.querySelectorAll) { var arr = context.querySelectorAll(selector); for (var i = 0; i < arr.length; i++) { this.elements.push(arr[i]); } } ////这一块是选择器的实现,没有写完,可以自己实现 }, each: function (callback) { if

html5中Canvas为什么要用getContext('2d')

不羁岁月 提交于 2020-03-17 02:44:10
HTML DOM getContext() 方法 HTML DOM Canvas 对象 定义和用法 getContext() 方法返回一个用于在画布上绘图的环境。 语法 Canvas.getContext(contextID) 参数 参数 contextID 指定了您想要在画布上绘制的类型。当前唯一的合法值是 "2d",它指定了二维绘图,并且导致这个方法返回一个环境对象,该对象导出一个二维绘图 API。 提示:在未来,如果 <canvas> 标签扩展到支持 3D 绘图,getContext() 方法可能允许传递一个 "3d" 字符串参数。 返回值 一个 CanvasRenderingContext2D 对象,使用它可以绘制到 Canvas 元素中。 描述 返回一个表示用来绘制的环境类型的环境。其本意是要为不同的绘制类型(2 维、3 维)提供不同的环境。当前,唯一支持的是 "2d",它返回一个 CanvasRenderingContext2D 对象,该对象实现了一个画布所使用的大多数方法。 举个简单的例子,画一个五子棋棋盘为例: <canvas id="chess" width="450px" height="450px"></canvas> var chess = document.getElementById("chess"); var context = chess