自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 问答 (2)
  • 收藏
  • 关注

原创 Django restframework

先贴官网:http://www.django-rest-framework.org/实际上在Django的原生框架如果想做到REST的API是比较生硬的,因为Django的URL设置,并没有如何限定request方法的参数,只能够设置URL匹配规则和指向方法。但RESTful的API要求我们充分利用GET POST PUT DELET四种方法,所以迫不得已只能有下面这种代码了:if ...

2018-08-14 17:33:59 219

原创 Django & Docker项目结构实践 2

在上一篇博文中,描述了一些django项目结构的实践,但实际上还有很多改进的地方,正好和最近的一个项目可以自由发挥,就套用了原本的脚手架项目,并做了一些改进,另外也结合了docker。首先是总体的项目||-deployment_yml|-deployment_server|-deployment_dockerfile|-project1|-project2

2016-11-11 08:46:04 526

原创 Django & webpack & Docker & Apache 实践修正

1. 静态文件路径首先来说一下再django+apache中静态文件是如何被使用的:a. django在 Django的setting.py中有一个STATIC_URL, 这个变量会被模板使用到{% load staticfiles %}假如你的STATIC_URL = ‘/test/’的话,那么最后在html上的会是/test/common/bootstrap/c

2016-11-02 11:50:06 965

原创 Django & webpack 项目结构实践

|-[root] |-[project folder] |-setting.py |-urls.py |-wsgi.py |-env.py |-[modules] |-[app1] |-[api] |-[service] |-api1.py |-api2.py |-[view] |...

2016-10-27 13:23:09 1099

原创 Python - 协程 - Gevent - yield

Python在并发处理上不仅提供了多进程和多线程的处理,还包括了协程。协程很类似于Javascript单线程下异步处理的概念,协程同样是单线程的,之所以能够进行并发是因为通过某种方式保存了执行栈的上下文,在一定条件下将执行权交由其他栈,在一定条件下又通过执行栈上下文恢复栈。1. yield与之一概念最为类似的是Python中的yieldclass DemoTwo:

2016-10-20 17:09:28 1048

原创 WSGI 学习笔记

1. WSGIWSGI的全称是The Python Web Server Gateway Interface,也就是说WSGI是一种网关接口,用于在协议之间进行转换。上图所述的就是WSGI所做的事情,它如同一个管道,连接web server和python所写的web app。web server将HTTP Request发送至WSGI,WSGI再通过web app获取相关的HTPP R

2016-10-13 15:56:54 434

原创 docker & django & apache & webpack 实践

目的: 小型demo,在docker内集成django & apache,并使用webpack进行打包,利用docker进行一键部署 材料:docker / docker-compose /  apache2 / django project django project将使用bootstrap & leaflet 作为第三方JS插件,使用webpack进行打包djan...

2016-10-13 15:31:43 1346

原创 django-webpack配置

https://github.com/owais/django-webpack-loader1. 初始化djangodjango-admin.py startproject VueDjango使用django-admin工具初始化项目cd WebpackDemopython manage.py startapp FreeMap每一个proje

2016-10-06 16:33:52 4627

原创 微信小程序 - MINA 框架 学习笔记

作为码农,似乎必须跟随潮流,兢兢战战,最近微信小程序横空出世,那么就一起来看看吧。按惯例,先贴link为敬:http://bing.aliaii.com/wxopen/MINA.html一、MINA在阅读开发者文档之后,越发感觉微信小程序是一个由微信内置JS引擎启动的前端程序,打个比喻就是在微信的框架下写web应用。而这个框架被称为MINA。这是在百度随

2016-09-30 14:18:33 2876

原创 Docker 学习笔记

一、什么是Docker从航运说起,在较为久远的时代,货船装载货物是没有包装规范的,所以会有各种形状的货物(布袋、大箱子、豪华箱、木桶...),这样就使得货船不易管理货物以及规划仓储。在现代,一个具有时代意义的产物就诞生了——集装箱,这样航运规范化,每一样货物都会被装载到集装箱内进行运输,承货人只需要关心集装箱的数量与规格,而货主则只需要考虑货物需要什么规格的集装箱,如果将货物放置到集装箱内即可

2016-09-29 13:34:57 394

原创 Summay (1)

核心: MV* /  Flux / Vue.js / Node.js / Webpack1. Vue.js首先,Vue.js 是一个聚焦于前端界面的lib,同时也拥抱第三方支持。Vue.js 的核心思想应该是 数据驱动 和 组件抽象,以此来完成响应式数据绑定以及组件布局。a. 数据驱动在数据驱动方面,Vue.js认为HTML是一种用于表现数据的模板,我们在HTML中用特

2016-09-22 19:50:45 414

原创 webpack loader

http://webpack.github.io/docs/loaders.html1. 原则 / 工作首先,我们应该明白webpack loader是如何工作的,以及他秉承着什么原则进行工作loader: 'style!css!sass'这是一段用于打包css文件的loader说明,可以看出loader是可以链式进行,并且从右到左的 (sass -> css -> )

2016-09-22 17:57:59 376

原创 webpack人门 & 集成django

1. webpack是什么官网: http://webpack.github.io/官网上的一张宣传图已经告诉了我们什么事webpack

2016-09-19 23:09:51 629

原创 Spark环境搭建 (Python)

1. 安装lib材料:spark : http://spark.apache.org/downloads.htmlhadoop : http://hadoop.apache.org/releases.htmljdk: http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.htmlhado...

2016-09-13 16:12:46 4330

原创 ajax轮询 & 长连接 & websocket

三次握手的无状态HTTP协议,应该是所有web应用的基础,以此来进行client和server的交互,但是在这种协议之下造成了1 request = 1 response, no request, no response的情况,也就是服务器只能被动地回应服务器端的请求,而不能主动发送消息给客户端,所有在一些即时应用上,http协议略显乏力,但即时如果也有轮询和long poll这两种方法来完成即时

2016-09-10 14:31:39 2140

原创 Node.js 学习笔记 (一)

1. 异步IOnode.js是一个基于javascript的平台工具,提供在服务器端解释、运行javascript的能力。node.js底层是一套c++编写的api,同时在上层运用Google V8引擎解释javascript调用这些底层的API。大家都知道javascript是一种单线程脚本语言,所以基于V8引擎的node.js在javascript的层面上也不例外,但很明显作为一个服务

2016-09-10 12:55:32 802

原创 MVP与MVC

MVC应该是我们在进行开发时最经常遇到的词汇了,它让臃肿混乱不堪的代码变得结构清晰明确,并且各司其职,Model层负责数据处理,Controller负责业务逻辑,View则负责交互,由此结构化了输入->处理->输出。其核心的想法是,分离数据(M)和交互视图(V),在中间创建控制器(C)用于同步,同时一旦数据(M)更新,需要更新相应的交互视图(V)。所以MVC就如同左图,MVC三个部分相互牵连,互相

2016-09-08 18:05:19 271

原创 Javascript - 运行机制

Javascript是单线程的,这一特性也是因为Javascript的初衷是操作DOM,产生用户交互,如果存在多线程,操作DOM就会产生同步问题,为了避免复杂性,Javascript被设计为单线程的。但我们仍然看到了一些异步特性,例如:事件响应、ajax、计时器等。实际上,这些异步任务是在一个特殊的任务队列中等待主线程执行的,当主线程空闲就从任务队列中获取可以执行的任务进行处理。而像事

2016-08-25 10:35:32 423

原创 Flux - 基于单向数据流的应用架构

Flux是一款基于单向数据流的应用架构,其目的是更好地组织应用程序代码。相比于传统的MV*而言,Flux强调单向,从而让整个数据流形成了闭环。而在MV*中,数据流往往不会是单向的。举个例子,Controller触发了model改动,从而触发View改动,但同时联动另一个Model改动,又再次触发View改动。(Controller  -> Model - > View -> Mod

2016-08-23 17:21:36 2959

原创 Vue.js 学习笔记

1. 过渡Vue.js 提供过渡系统,为DOM元素在插入/删除时提供动画过渡效果。http://www.w3school.com.cn/css3/css3_transition.aspHow to use:1.尝试以 ID "expand" 查找 JavaScript 过渡钩子对象——通过 Vue.transition(id, hooks) 或 transition

2016-08-21 15:23:18 569

原创 Vue.js - 学习笔记 (一)

简介实际上,所有的前台程序都可以分为View以及Model两个层次,Model层使用字面量以及JS特性创建数据模型,并搭载用户数据,View层则以用户友好的方式呈现Model层数据,并提供友好的交互方式。那么如何连接View和Model这两个层次呢?如果写过J2EE程序,那么最经典的连接方式就是MVC模式了,通过控制器进行View以及Model的交互。而另一种异军突起的方式,则是MVVM了,使

2016-07-24 14:39:22 2341

原创 JavaScript - prototype

JavaScript中也有对象的概念,也有new关键字,可以通过构造器新建对象,但在没有new的时候,是人们是如何创建对象的呢?我们知道V8引擎中每一个对象包含一个属性__proto__,这个属性称为对象的原型,而这个属性也是一个对象,也可能会有__proto__属性,这也是原型链的实现方式,在进行xx.yy()时,会先寻找xx内是否含有yy属性,如果没有则会沿着原型链向上查找,直至原型链最后

2016-07-19 16:25:49 315

原创 设计模式 笔记(2)

单例模式 Singleton目的:在JVM运行程序时类的实例对象唯一存在。方法: 1.私有的构造方法 2.指向自己实例的私有静态引用 3.以自己实例为返回值的静态的公有的方法例(还有其他完成方式):饿汉式public class Singleton{private static Singleton singleton = new Singleton(); pri

2016-07-19 12:49:44 257

原创 设计模式 笔记(1)

类关系依赖:表明类A在完成某些功能时必须使用类B,称类A与类B存在依赖关系。具体表现为类A的方法使用类B作为方法参数、局部变量、静态调用等。关联:表明类A与类B的实例对象存在固定的对应关系。具体表现为类A的成员变量为类B,这样在类A的实例对象中存在类B的实例对象。单向关联、双向关联。聚合:一种特殊的关联关系。但关联关系中,类是相互独立的。聚会关系中类与类是包容关系,即类A中含有类B。强

2016-07-19 12:43:51 260

原创 JavaScript 函数学习笔记

在JavaScript中,函数也是一个对象,所有就可以看到如下的现象所有在Java中等同于Class的构造器,其类型都是function。在JavaScript的世界中,我们可以将函数当作对象使用。函数的声明方式://最常见的函数声明方式function test(){ }test();//将匿名函数赋值给变量var test2=function(){

2016-07-18 19:28:44 223

原创 Android 高德地图API学习笔记(2)

高德地图API支持绘制覆盖物,覆盖物API类似于JS开源地图绘制库Leaflet,如果有相关经验可以轻松上手。支持的覆盖物:折线(Polyline)多边形(Polygon)圆(Circle)图片覆盖层(GroundOverlay)标记(Marker)弧形(Arc)如何创建覆盖物:a.创建覆盖物选项对象(XXOptions eg:Polyline)

2016-07-17 15:50:02 2160

原创 Android 高德地图API学习笔记

环境设置a. 官网下载API :http://lbs.amap.com/api/android-sdk/down/b. 本地生成SHA1在命令行使用/bin/keytool keytool -v -list -keystore  默认的keystore是在C:\Users\\.android\debug.keystore默认密码是android之后将会在命令行中显示SHA1

2016-07-17 15:38:17 1137 1

原创 Python - Decorator

Python中装饰器模式的一种实现,在不影响其他函数本身的情况下,透明地为函数追加功能,类似于Spring的AOPclass Demo: def __init__(self, arg1): self.arg1 = arg1 def __call__(self, fn): def wapper(*args, **kwargs): pri

2016-07-15 12:34:24 306

翻译 Python - yield 生成器

包含yield语句的函数会被编译为生成器,当函数被调用时返回一个生成器对象,改对象实现了迭代器接口不像一般的函数会生成值后退出,生成器函数在生成值后会自动挂起并暂停他们的执行和状态,他的本地变量将保存状态信息,这些信息在函数恢复时将再度有效def yi(n): for i in range(n): yield ifor i in yi(10): pr

2016-07-12 13:49:11 365

原创 Python 笔记 (1)

Python是一门解释型语言,无需编译和链接,通过解释器运行。1. 运算normal: +-*/=结果去除小数部分: //与javascript相似,自动转为浮点型数组(字符串): arr[begin:end]  arr[:end] arr[begin:] arr[index]字符串是不可变的为负数则会从右边开始计算len(arr)返回长度数组合

2016-07-11 17:09:12 250

转载 JavaScript - MutationObserver

MutationObserver会在当前DOM操作完成之后被触发,与事件的同步机制不同,它是异步触发的。========quote========它等待所有脚本任务完成后,才会运行,即采用异步方式。它把DOM变动记录封装成一个数组进行处理,而不是一条条地个别处理DOM变动。它即可以观察发生在DOM节点的所有变动,也可以观察某一类变动。========quote========

2016-07-10 15:05:03 659

转载 Express 摘录 (1)

1. Installnpm initnpm install express --saveornpm install express-generator -gexpress [appname]npm installset DEBUG=[appname]:* & npm start.├── app.js├── bin│ └── www├── pa

2016-07-10 12:56:19 257

原创 JavaScript 获取方法声明/参数值

1. 获取方法参数值在Javascript中,每次函数调用都会被隐式创建一个Arguments对象arguments,该对象包含了当次调用的实参引用,并且可以使用数组语法进行遍历,该对象还包含了一个callee方法,是当前调用的Function实例。这一特性可以用于函数重载/匿名递归调用function test(){handlingArg(arguments);

2016-07-10 12:07:12 724

翻译 AngularJS Tutorial (2)

4. Filter{{ filter_expression | filter : expression : comparator : anyPropertyKey}}$filter('filter')(array, expression, comparator, anyPropertyKey)expression 用于过滤的字符串/function(value,

2016-07-06 18:20:04 539

翻译 Angular Tutorial (1)

1. Templateng-app -> angular.module('...',[])ng-controller -> moduleApp.controller('..',function($scope){}){{variable.attribute}} or ng-model="xxx"-> $scope.variable.attributeApp Scope ->

2016-07-06 12:42:13 497

原创 Jasmine学习日志

1.环境配置https://segmentfault.com/a/1190000002971135bower是nodejs用于部署前端依赖的工具http://blog.fens.me/nodejs-jasmine-bdd/利用bower设置基础环境a. npm install -g bowerb. cd到目标文件夹c. bower search

2016-07-04 18:16:21 546

翻译 Crossfilter总结

Crossfilter是一个数据计算模型,能够很好地结合DC.JS进行数据解析绘图。crossfilter([records])构建数据过滤器- 基本数据类型、object的数组 add/remove增加修改数据size数据大小groupAll简易的分组方法 dimension使用数据读取器创建一个维度,数据读取器必须返回自然排序值dimensi

2016-07-04 18:12:00 2820

原创 Django Compress setup

1. Install Django-CompressFor windows:a. pipinstall wheel==0.29.0b.pipinstall rcssmin==1.0.6 --install-option="--without-c-extensions"c.pipinstall rjsmin==1.0.12 --install-option="--without-

2016-07-04 18:01:17 746

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除