index函数

Django之中间件与form其他用法

谁都会走 提交于 2019-12-06 08:48:35
中间件常用的五种方法: process_request(self,request) process_request有一个参数,就是request,与视图函数中的request一样。它的返回值可以是None也可以是HttpResponse对象。返回值是None,按正常流程继续走,交给下一个中间件处理,如果是HttpResponse对象,Django将不执行视图函数,而将相应对象返回给浏览器。 示例: 应用下自定义一个文件夹,自定义一个py文件: from django.utils.deprecation import MiddlewareMixin class MD1(MiddlewareMixin): def process_request(self,request): print("MD1的process_request") class MD2(MiddlewareMixin): def process_request(self,request): print("MD2的process_request") settings配置: 在MIDDLEWARE列表中加入 'app01.mymiddleware.my.MD1', 'app01.mymiddleware.my.MD2', 执行结果是: MD1的process_request MD2的process_request

Protocol Buffer技术详解(Java实例)

回眸只為那壹抹淺笑 提交于 2019-12-06 08:22:36
该篇Blog和上一篇(C++实例)基本相同,只是面向于我们团队中的Java工程师,毕竟我们项目的前端部分是基于Android开发的,而且我们研发团队中目前主要使用的开发语言就是C++、Java和Python,其中Python主要用于编写各种工具程序。然而为了保证该篇Blog的完整性和独立性,我仍然会将上一篇Blog中已经出现的内容再一次赘述,同时对于Java中特有的部分也会着重介绍。 一、生成目标语言代码。 下面的命令帮助我们将MyMessage.proto文件中定义的一组Protocol Buffer格式的消息编译成目标语言(Java)的代码。至于消息的内容,我们会在后面以分段的形式逐一列出,同时也会在附件中给出所有源代码。 protoc -I=./message --java_out=./src ./MyMessage.proto 从上面的命令行参数中可以看出,待编译的文件为MyMessage.proto,他存放在当前目录的message子目录下。--java_out参数则指示编译工具我们需要生成目标语言是java,输出目录是当前目录的src子目录。这里需要补充说明的是,因为在MyMessage.proto文件中定义了option java_package = "com.lsk.lyphone"的文件级选项,所以输出的目前是src/com/lsk/lyphone

SSD源码解读——损失函数的构建

ぐ巨炮叔叔 提交于 2019-12-06 07:07:58
之前,对SSD的论文进行了解读,可以回顾之前的博客: https://www.cnblogs.com/dengshunge/p/11665929.html 。 为了加深对SSD的理解,因此对SSD的源码进行了复现,主要参考的github项目是 ssd.pytorch 。 搭建SSD的项目,可以分成以下三个部分: 数据读取 ; 网络搭建 ; 损失函数的构建。 接下来,本篇博客重点分析 损失函数的构建 。 检测任务的损失函数,与分类任务的损失函数具有很大不同。在检测的损失函数中,不仅需要计类别置信度的差异,坐标的差异,还需要使用到各种tricks,例如hard negative mining等。 在train.py中,首先需要对损失函数MultiBoxLoss()进行初始化,需要传入的参数为num_classes类别数,正例的IOU阈值和hard negative mining的正负样本比例。在论文中,VOC的类别总数是21(20个类别加上1个背景);当预测框与GT框的IOU大于0.5时,认为该预测框是正例;hard negative mining的正样本和负样本的比例是1:3。 # 损失函数 criterion = MultiBoxLoss(num_classes=voc['num_classes'], overlap_thresh=0.5, neg_pos=3) 在models

2019-2020-11 20199317 《Linux内核原理与分析》 第十一周作业

杀马特。学长 韩版系。学妹 提交于 2019-12-06 05:39:49
ShellShock 攻击实验 1 ShellShock 简介 Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。 2 实验目的 在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问题。 3 实验前的准备工作 3.1 环境搭建 以root权限安装4.1版bash(4.2版本以上的漏洞已经被堵上了) bash4.1 原来的下载地址是 http://ftp/gnu.org/gnu/bash/bash-4.1.tar.gz ,为了加快速度,我们这里使用下面的下载地址 http://labfile.oss.aliyuncs.com/bash-4.1.tar.gz 下载: 安装: 链接: 到这里就安装完了,接下来检测是否存在shellshock漏洞。 输出vulnerable的话,说明bash有漏洞。 上面的这个命令分为了两部分: 后面是 bash -c "echo this is a test" ,功能用bash执行后面的字符串中的命令,也就是把引号中的内容当成一个bash脚本来执行。 前面 env x='() { :; }; echo

python学习之路day14(javascript)

喜欢而已 提交于 2019-12-06 05:34:11
一、JavaScript   简称:JS   一门基于对象和事件驱动的脚本语言   布兰登 艾奇 JavaScript--->3天   JavaScript分成三部分:     1.ECMAJscript     2.DOM浏览器对象模型,这里提供了所有浏览器的API接口     3.BOM文档对象模型,这里提供了所有文档的API接口   基本使用:     1.JavaScript的解析器, 内置到了浏览器里面,所以我们不需要单独安装解析器,直接安装浏览器       python:编译型(开发者代码编译--->编译成一个文件,去执行)       Java:解析型(开发者代码--->(解析到)内存)     2.JavaScript是解析型脚本语言,弱类型     3.JavaScript类似css,有三种引入网页的方式       a.嵌入式   <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script type="text/javascript"> alert(888) </script></body></html>      b <!DOCTYPE html><html lang="en"><head> <meta

day10练习

此生再无相见时 提交于 2019-12-06 04:32:18
一、递归 1.1 使用递归实现:计算某个数的阶乘 import mathdef re_mul(n): if n <= 0: return 1 return n*re_mul(n-1)while True: num = input("请输入数字:\n") if(num == "退出"): break try: num_int = math.floor(eval(num)) print(re_mul(num_int)) except: print("输入错误") 1.2 用递归函数来实现获取斐波拉契数列中第n个数字的值 ps(斐波那契数列:从3三个数开始,后一个数等于前面两个数的和: 0,1,1,2,3,5,8,13,21,34,55,89,144…… ) import mathdef func(num0,num1,num_index):#斐波那契数列 if num_index == 1: return num0 if num_index == 2: return num1 return func(num0,num1,num_index-1)+func(num0,num1,num_index-2)while True: num0 = input("请输入第一个数字:\n") num1 = input("请输入第二个数字:\n") if(num0 == "退出" or num1 ==

vue最简单的点击切换active

烂漫一生 提交于 2019-12-06 04:17:37
很多朋友在做小程序或vue项目选项卡或选择同类不同项的时候,需要变色的情况,本人提供最简单的方式,屡试不爽。 我们来完成一个这三个开餐时间,点击那个就对应那个active,并且能获取对应的数据: 模拟数据 time : [ {timer: '17' }, {timer: '18' }, {timer: '19' } ], 循环列表渲染成html,那么就有了index,也就是所说的下标,没错,就是拿下标来玩的,怎么玩呢? < li v-for = "(item, index) in time" key = "'time' + index" @ click = "selectTimer(index)" :class = "timeIndex === index ? 'default default-active' : 'default' " > {{item.title}} </ li > 首先重点是 :class=”timeIndex === index ? ” ” : ” “> 然后定义一个timeIndex变量,初始化为0,就是下标为0 // 选择时间 @click="selectTimer(index)" selectTimer(index) { this .timeIndex = index; }, 上面的函数就是我点击哪个就把他对应的下标赋值,达到指向下标,简单说

vuex封装购物车函数

谁说我不能喝 提交于 2019-12-06 02:56:43
js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state:{ shopCart:[], allChecked:false }, mutations:{ setShopCart(state,obj){ state.shopCart.push(obj); }, calcUp(state,index){ state.shopCart[index].Num == state.shopCart[index].total?state.shopCart[index].total : state.shopCart[index].Num++ }, calcDown(state,index){ state.shopCart[index].Num == 0?0 : state.shopCart[index].Num-- }, ShopVal(state,index){ var shopVal = state.shopCart[index].Num; shopVal = isNaN(shopVal)? 0 : Math.ceil(shopVal); shopVal = shopVal<0?0:shopVal; shopVal = shopVal>state

简单而直接的Python web 框架:web.py

China☆狼群 提交于 2019-12-06 00:51:16
From: https://www.oschina.net/question/5189_4306 Web.py github 地址: https://github.com/webpy/webpy https://pypi.python.org/pypi/web.py Web.py Cookbook 简体中文版: http://webpy.org/cookbook/index.zh-cn web.py 0.3 新手指南: http://webpy.org/docs/0.3/tutorial.zh-cn webpy 官网文档: http://webpy.org/ web.py 十分钟创建简易博客: http://blog.csdn.net/freeking101/article/details/53020728 一个简单的web.py论坛: http://www.cnblogs.com/russellluo/p/3240564.html web.py 是一个Python 的web 框架,它简单而且功能强大。web.py 是公开的,无论用于什么用途都是没有限制的。而且相当的小巧,应当归属于轻量级的web 框架。但这并不影响web.py 的强大,而且使用起来很简单、很直接。在实际应用上,web.py 更多的是学术上的价值,因为你可以看到更多web 应用的底层,这在当今“抽象得很好”的web

工具函数集

谁说我不能喝 提交于 2019-12-05 23:13:49
~ function (root) { var previousUtils = root.utils; var utils = {}; var version = '0.1' ; var slice = Array.prototype.slice; var toString = Object.prototype.toString; var hasOwnProperty = Object.prototype.hasOwnProperty; var isSomeTypeMap = [ 'Function' , 'Array' , 'Object' , 'Arguments' , 'String' , 'Null' , 'Number' , 'Boolean' , 'Undefined' ]; utils.cache = {}; for (var index = 0 , len = isSomeTypeMap.length; index < len; index++) { var currentType = isSomeTypeMap[index]; utils[ 'is' + currentType] = ( function (type) { return function () { var args = utils.slice(arguments); var len = args