index函数

underscore.js源码解析【集合】

萝らか妹 提交于 2020-03-13 00:44:52
// Collection Functions // -------------------- // The cornerstone, an `each` implementation, aka `forEach`. // Handles raw objects in addition to array-likes. Treats all // sparse array-likes as if they were dense. /* params: 数组、对象或类数组对象,函数,函数执行环境 */ _.each = _.forEach = function(obj, iteratee, context) { iteratee = optimizeCb(iteratee, context); var i, length; if (isArrayLike(obj)) {// 数组或类数组 for (i = 0, length = obj.length; i < length; i++) { iteratee(obj[i], i, obj);// item index obj } } else {// 对象 var keys = _.keys(obj);// 返回键的数组 for (i = 0, length = keys.length; i < length; i++) {

(二)基本框架

我的未来我决定 提交于 2020-03-12 04:48:17
1.初始化 from flask import Flask app = Flask(__name__) flask类的构造函数只有一个必须指定的参数,即主模块或包的名字。 2.路由 http://python.jobbole.com/80956/ 处理URL和函数之间关系的程序称为路由 定义路由的最简便方式,是使用app.route修饰器 @app.route('/') def index(): return '<h1>hello world</h1>' URL和函数之间的关系在此表现为:比如不熟的域名为www.example.com,在浏览器中访问http://www.example.com后,会触发对应的index()函数。此函数的返回值称为相应,即客户端会接收到的内容。如果客户端是Web浏览器,相应就是现实给用户查看的文档。 index()这样的函数称为视图函数。 Flask支持动态URL,只需在route秀时期中使用特殊的句法。 @app.route('/user/<name>') def user(name): return '<h1>hello, %s!</h1>' % name 3.启动服务器 用run方法启动flask Web服务器: if __name__ == '__main__': app.run(debug=True) debug设为True进入调试模式 4

Django基础之中间件

◇◆丶佛笑我妖孽 提交于 2020-03-08 03:29:54
1. 引入 在之前学习的过程中,已经学会了给视图函数加装饰器来判断用户是否登录,把没有登录的用户请求跳转到登录页面。 我们通过给几个特定视图函数加装饰器实现了这个需求。 但是以后添加的视图函数可能也需要加上装饰器,这样显得稍微有些繁琐。 但是,通过中间件就可以采用更适宜的方式来实现给所有类似请求都做相同相同操作的功能了。 2. 什么是中间件? 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要谨慎使用,使用不当会影响性能。 说的简单一点,中间件就是帮助我们在视图函数执行之前和执行之后都可以做一些额外的操作,它本质上就是一个自定义类,类中定义了几个方法,Django框架会在处理请求的特定时间去执行这些方法。 我们一直都在使用中间件,只是没有注意到而已,打开django项目的setting.py文件,可以看到MIDDLEWARE配置项。 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware

thinkphp 3.1.3 应用分组和部署

我的未来我决定 提交于 2020-03-08 02:58:10
应用分组部署共用项 ‘APP_GROUP_LIST’=>‘Index,Admin’,//分组设置 ‘DEFAULT_GROUP’=>‘Index’,//设置默认分组 如果想在Index和Admin分别设置配置项和公用函数可以建立独立文件夹“Index”和“Admin” 其中common的分组里的文件名命名必须为function.php不然不会识别。 Action的分组文件夹必须设置,其他的Common和Conf可有可无 来源: CSDN 作者: 小祈祈 链接: https://blog.csdn.net/qq839534800/article/details/104620424

关于for循环里面异步操作的问题

坚强是说给别人听的谎言 提交于 2020-03-06 14:57:32
https://www.cnblogs.com/vipzhou/p/6519552.html 关于for循环里面异步操作的问题 首先来看一个比较简单的问题,我们想实现的就是每隔1s输出0-4的值,就是这么简单,看下错误写法: 1 2 3 4 5 6 7 8 function test() { for ( var i = 0; i < 5; ++i) { setTimeout(function() { console.log( "index is :" , i); }, 1000); } } test(); 以上代码会如何输出?输出如下: 1 2 3 4 5 index is : 5 index is : 5 index is : 5 index is : 5 index is : 5 而且该操作几乎是在同一时间完成,setTimeout定时根本就没有起作用,这是因为:单线程的js在操作时,对于这种异步操作,会先进行一次“保存”,等到整个for循环执行结束后,此时i的值已经变成5,因为setTimeout是写在for循环中的,相当于存在5次定时调用,这5次调用均是在for循环结束后进行的,所以自然而然输出都是5, 正确的实现有几种,一般情况下,我们使用递归实现,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

25个JavaScript数组方法代码示例

岁酱吖の 提交于 2020-03-05 16:03:46
摘要: 通过代码掌握数组方法。 原文: 通过实现25个数组方法来理解及高效使用数组方法(长文,建议收藏) 译者:前端小智 Fundebug 经授权转载,版权归原作者所有。 要在给定数组上使用方法,只需要通过 [].方法名 即可,这些方法都定义在 Array.prototype 对象上。在这里,咱们先不使用这些相,反,咱们将从简单的方法开始定义自己的版本,并在这些版本的基础上进行构建。 没有比把东西拆开再重新组装起来更好的学习方法了。注意,当咱们的实现自己的方法时,不要覆盖现有的方法,因为有的库需要它们,并且这样也方便比较咱们自己的方法与原始方法的差异。 所以不要这样命名咱们自定义的方法: Array.prototype.map = function map() { // implementation }; 最好这样命名: function map(array) { // implementation } 咱们也可以通过使用 class 关键字并扩展 Array 构造函数来实现咱们的方法,如下所示: class OwnArray extends Array { public constructor(...args) { super(...args); } public map() { // implementation return this; } } 唯一的区别是

Django----中间件详解

旧时模样 提交于 2020-03-04 22:49:53
Django----中间件详解 阅读目录(Content) Django中间件 自定义中间件 中间件(类)中5种方法 中间件应用场景 回到顶部(go to top) Django中间件 在http请求 到达视图函数之前 和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。 Django1.9版本以后中间件的执行流程 1、执行完所有的request方法 到达视图函数。 2、执行中间件的其他方法 3、经过所有response方法 返回客户端。 注意:如果在其中1个中间件里 request方法里 return了值,就会执行当前中间件的response方法,返回给用户 然后 报错。。不会再执行下一个中间件。 Django 1.9版本之前,如果在request方法中遇到return,会执行最后一个中间件的response方法,然后依次回传 回到顶部(go to top) 自定义中间件 1.在project下随便创建一个py文件 View Code 2、在setings文件中 注册这个 py文件 django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件 View Code 执行结果 为啥报错了呢? 因为 自定义的中间件response方法没有return,交给下一个中间件

【Django】Web框架本质

十年热恋 提交于 2020-03-03 05:31:02
目录 根据不同的路径返回不同的内容 普通版 函数版 函数进阶版 返回具体的HTML文件 让网页动态起来 服务器和应用程序 wsgiref 模块 "@ * 我们可以这样理解:所有的==Web应用本质上就是一个socket服务端==,而用户的==浏览器就是一个socket客服端==。** 这样我们就可以自己实现Web框架了: from socket import * sk = socket(AF_INET, SOCK_STREAM) sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) sk.bind(('127.0.0.1', 8080)) sk.listen() while True: conn, addr = sk.accept() data = conn.recv(9000) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') # 响应状态行 conn.send(b'Hello,world!') conn.close() 可以说Web服务本质上都是在这十几行代码基础上扩展出来的,这段代码就是它们的祖宗。 用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定? 你这个网站是这个规定,他那个网站按照他那个规定,这互联网还能玩么? 所以,必须有一个统一的规则,让大家发送消息

【Django】Web框架本质

 ̄綄美尐妖づ 提交于 2020-03-03 05:29:50
目录 根据不同的路径返回不同的内容 普通版 函数版 函数进阶版 返回具体的HTML文件 让网页动态起来 服务器和应用程序 wsgiref 模块 @ * 我们可以这样理解:所有的==Web应用本质上就是一个socket服务端==,而用户的==浏览器就是一个socket客服端==。** 这样我们就可以自己实现Web框架了: from socket import * sk = socket(AF_INET, SOCK_STREAM) sk.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) sk.bind(('127.0.0.1', 8080)) sk.listen() while True: conn, addr = sk.accept() data = conn.recv(9000) conn.send(b'HTTP/1.1 200 OK\r\n\r\n') # 响应状态行 conn.send(b'Hello,world!') conn.close() 可以说Web服务本质上都是在这十几行代码基础上扩展出来的,这段代码就是它们的祖宗。 用户的浏览器一输入网址,会给服务端发送数据,那浏览器会发送什么数据?怎么发?这个谁来定? 你这个网站是这个规定,他那个网站按照他那个规定,这互联网还能玩么? 所以,必须有一个统一的规则,让大家发送消息

【学习】DataFrame&Series类【pandas】

谁都会走 提交于 2020-03-02 09:56:20
参考链接:http://blog.csdn.net/yhb315279058/article/details/50226027 DataFrame类: DataFrame有四个重要的属性: index:行索引。 columns:列索引。 values:值的二维数组。 name:名字。 这个类是Pandas最重要的类之一。 构建方法,DataFrame(sequence),通过序列构建,序列中的每个元素是一个字典。 frame=DateFrame构建完之后,假设frame中有'name','age','addr'三个属性,可以使用fame['name']查看属性列内容,也可以fame.name这样直接查看。 frame按照'属性提取出来的每个列是一个Series类。 DataFrame类可以使用布尔型索引。 groupby(str|array...)函数: 可以使用frame中对应属性的str或者和frame行数相同的array作为参数还可以使用一个会返回和frame长度相同list的函数作为参数,如果使用函数做分组参数,这个用做分组的函数传入的参数将会是fame的index,参数个数任意。使用了groupby函数之后配合,size()函数就可以对groupby结果进行统计。 groupby后可以使用: size():就是count sum():分组求和 apply(func