python 创建一个简单的Python服务器 有时候在学习一些前端框架或前端库时,需要有一个Web服务器作为后端提供数据。如果使用Apache或Tomcat等服务器比较麻烦(需要把代码放到指定位置),而且不够轻量级——相比起使用Python来说。 如果没有安装Python的话,需要先安装Python,建议安装Python 3以上的版本。 进入你的项目文件夹,打开一个终端(控制台窗口),输入: python -m http.server 8000 通过 http://localhost:8000 就可以在浏览器访问了…… 这样就创建成功了一个PythonWeb服务器,都觉得简单的过分了…… > 如果使用的是Python 2,输入:python -m SimpleHttpServer 8000
Android Eclipse中Android工程引用另一个Android工程 现在有两个工程: A工程 和 B工程 B工程要引用A工程,步骤如下: 1. 右键点击工程A->Properties->Android,选中Is library项,Apply; 2. 右键点击工程B->Properties->Android,在Library中,点击Add按钮,加入A工程,Apply。此时在B中就引入了A中的资源和代码,所有资源和代码都可以直接调用。 注: 在B工程中要添加A工程引入的包。
web前端 SVG简介 SVG全称:Scalable Vector Graphics,可伸缩矢量图形 SVG既是一种文本格式,也是一种XML语言。每个SVG图像都是使用与HTML类似的标记定义的。 SVG代码可以直接包含在Html中,也可以动态插入到DOM中。 > 支持除IE8及其之前版本外的所有浏览器。 > 因为SVG同时是一种XML语言,所以,要记得关闭元素 创建SVG画布 创建了一个SVG元素后,可以将这个元素想象成一张画布,然后我们可以在这张画布画上各种各样的东西。既然是画布,首先自然得有画布的大小。 如此就创建了一副宽100px、高100px的画布。单位默认为px,可以指定其它单位,如em、pt等。 在画布上画一个简单的圆 有了画布后,我们就可以在画布上画画了。但与普通的画画不同,我们不是用笔去画,而是指挥电脑去画。那如果我要在画布上画一个圆,
python xlrd-使用python处理Excel表格 使用python处理Excel表格可以使用python包——xlrd。 安装xlrd 地址 [https://pypi.python.org/pypi/xlrd/] 下载后,使用 pip install .whl 安装即好。 查看帮助: >>> import xlrd >>> help(xlrd) Help on package xlrd: NAME xlrd PACKAGE CONTENTS biffh book compdoc formatting
web前端 【Three.js】1-1-创建一个旋转的立方体 概述 Three.js是一个前端的3D渲染库。 效果展示: 首先请大家想想一下自己照相的时候,我们抓着手机(考虑现在摄像头已经是手机标配了,且手机比摄像机普遍,故以手机为例),我们在屏幕里看到了现实世界的真实场景,这是将3D世界显示在了2D屏幕上。我们使用Three.js开发3D应用时,就需要基于这个最简单的场景来进行开发。 好了下面开始我们的第一个例子 —— 在网页中创建一个旋转的立方体。 第一步先来创建我们的网页结构,如下: My first Three.js app 下面我们的所有代码都写在第二个Script
web前端 AngularJs实现基于角色的前端访问控制 Github 项目地址 [https://github.com/zgljl2012/angular-permission] 最近做的项目是使用Angular做一个单页应用,但因为用户有不同的角色(管理员、编辑、普通财务人员等),所以需要进行不同角色的访问控制。 因为后端访问控制的经验比较丰富,所以这里只记录了前端访问控制的实现。请注意,前端最多只能做到显示控制!并不能保证安全,所以后端是一定要做访问控制的! 基于角色的访问控制需要做到两个层面的访问控制: 1. 控制页面路由的跳转,没有权限的用户不能跳转到指定url 2. 页面元素的显示控制,没有对应权限的用户不能看到该元素 但在此之前,我们还有一项重要的事要做。 存储用户信息 首先我们要做的,并不是和访问控制有关的事,首先我们要保存好用户信息。包括用户的基本信息,
web前端 Angular Js判断Object是否为空 在AngularJs中判断对象是否为空,可以使用angular.equals,如下 if(obj==null||angular.equals({}, obj)) { // 为空 }
web前端 AngularJs改变路由时,会执行两次 如果使用了路由控制,在指定路由时又同时指定了template和controller,那么在template指向的Html代码中就不用加上controller,因为路由控制器已经自动为我们加上了。 所以,如果你在html中又指定了controller的话,就相当于有两个controller,自然会执行两次。
python 【Python Requests开发文档 2.10】快速上手 下面我们就开始学习Requests简单优雅的API吧! 首先,请先确保自己Requests已经安装好了。 我们将通过下面的例子来学习Requests: 1. 发起请求 2. Get请求给url添加参数 3. Response的内容 4. 二进制响应 发起请求 打开控制台,输入: >>> import requests 引入requests模块 下面来获取一个网页,作为示例,我们来获取一下百度的首页: >>> r = requests.get("https://www.baidu.com") 好了,这个 r 就是我们获取的Response对象,从r中能获取所有我们需要的信息。
python 【Python Requests开发文档 2.10】安装与源码获取 目录 [http://www.zgljl2012.com/2016/08/04/python-requestskai-fa-wen-dang-2-10-mu-lu/] pip install requests Python的包安装都很简单,打开一个控制台,使用下面这条命令就好: $ pip install requests 如果你没有安装pip的话,可以看这里 [http://docs.python-guide.org/en/latest/starting/installation/]. 获取源码 Requests的源码托管在了Github上,可以直接访问https://github.com/
python 【Python Requests开发文档 2.10】简介 目录 [http://www.zgljl2012.com/2016/08/04/python-requestskai-fa-wen-dang-2-10-mu-lu/] 1. 理念 Requests基于部分PEP20的理念开发而成: 1. 美丽胜于丑陋 2. 明确胜于含糊 3. 简单胜于复杂 4. 复杂胜于难懂 5. 重视可读性 Requests遵循这些理念,所以比起urllib2这些库来,既算得上是“傻瓜式”,又有着优雅的API。 > Python Enhancement Proposals (PEP)是1999年Tim Peters提出的Python编程语言设计中的20条软件开发理念。
Java Maven内置变量 Maven内置变量说明 * ${basedir} 项目根目录 * ${project.build.directory} 构建目录,缺省为target * ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes * ${project.xxx} 当前pom文件的任意节点的内容,比方说version等 * ${project.build.finalName} 产出物名称,缺省为${project.artifactId}${project.version} * ${project.packaging} 打包类型,缺省为jar
Java Maven Install 报错:...... was cached in the local repository, resolution will not be reattempted until the update interval of nexus ...... Maven install时报错: ...... was cached in the local repository, resolution will not be reattempted until the update interval of nexus ...... 这是在本地对应的Jar包路径(本地仓库,比方说test-1.0.0.jar,文件夹默认为是:C://user/<用户名>/.m2/repository/test/test/
web前端 【NodeJS - Jade】Jade内联css样式,Jade inline style 在Jade模板中内联使用css样式,即使用style div(style="width:100%;") 就这么简单。。。
web前端 【Web前端-Gulp】安装Gulp > gulp: 用自动化构建工具增强你的工作流程! —— Automate and enhance your workflow!其有着易于使用,构建快速,高质量插件丰富等众多优势。 一直都想学一下gulp和grunt,借着工作上的一个项目,终于找到机会了。下面开始第一步,安装! 1. 安装node.js 这一步太简单,直接网上去官网下载对应平台的node版本,安装即可(记得将其加入环境变量)。 2. 创建一个项目文件夹,打开一个控制台窗口(有git的可以打开gitbash) 全局安装使用:npm install --global gulp 项目目录下安装使用:npm
python 多个标签相连时正则表达式提取单个标签内的数据 有如下一段Html Hello World 如果里面的Hello不只是有字母,还包括数字、汉字等一系列字符时,我们会希望只用 . 来代表每个字符然后将Hello提取出来,但 . 又包括了,所以提取出来的会是: HelloWorld 下面这段可以解决这个问题: # coding=utf-8 import re html = "HelloWorld" regex=r'(.+?)' data = re.findall(regex, html) for d in data:
设计模式 【Python设计模式】概述 设计模式是面向对象设计领域经久不衰的话题。它虽然不是银弹,但要设计一个可维护、可扩展的系统,经过前人验证后的设计模式能给设计者提供巨大的帮助。 最初学习的设计模式是Java版的,现在转到了Python。Python是一门很简洁的语言,许多复杂的功能往往只需要安装一个第三方包,然后写一个函数便可实现自己想法,非常方便。但当我试图用Python写一个可扩展的系统时(能爬取全国各省企业的信用信息的系统),遇到了很大的麻烦。开始只是使用函数以及模块实现功能,本来还有种回到了刚写代码时写C语言头文件和函数的亲切感,但代码越写越多时——因为需要对每一个省的验证码进行分析破解以及对索引列表信息、详细信息的爬取——一种深深的无力感就袭来了。我知道,面向过程已经不管用了。于是开始用起了Python中的面向对象进行封装。 在开始使用面向对象的时候,自然而然地就想到了设计模式。于是在网上找了找资料,意外地Github上找到了一群外国大牛(项目贡献者们)开源的一个Python设计模式项目。所以,就有了这一系列文章。代码就不客气地Github这个开源项目的代码。开源项目的地址在此
设计模式 【Python设计模式】Factory Method 工厂方法模式 工厂方法模式是一种创建型模式,即一种用于创建对象的模式。举个例子,现在大部分的应用都想要变得international,国际化(特别是现在面临超强监管下的手游行业)。那国际化的第一步是什么呢?当然是语言的国际化,文化、历史这样的先搁一边,得先让人看懂,再来让人喜欢。所以我们第一步就必须让应用能做到能切换语言,要做到切换语言其实很容易,比如下面这段: if lan is 'Chinese': dog = "狗" cat = "猫" else lan is 'English': dog = "dog" cat = "cat" 这样做简单是简单,但不方便,
leetcode Kth Smallest Element in a Sorted Matrix 问题描述 Given a n x n matrix where each of the rows and columns are sorted in ascending order, find the kth smallest element in the matrix. Note that it is the kth
leetcode Insert Delete GetRandom O(1) Insert Delete GetRandom O(1) 问题描述 Design a data structure that supports all following operations in average O(1) time. insert(val): Inserts an item val to the set if not already present.
python 【Python Requests开发文档 2.10】目录 Python Requests 2.10 Realease 中文开发文档 1. 用户评价 2. 支持的特性 3. 用户指南 * 3.1 简介 [http://www.zgljl2012.com/2016/08/13/python-requestskai-fa-wen-dang-2-10-jian-jie/] * 3.2 安装 [http://www.zgljl2012.com/2016/08/13/
leetcode Remove Duplicates from Sorted Array Remove Duplicates from sorted array 问题描述 Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length. Do not allocate extra space for
设计模式 动态代理 代理模式是设计模式中一个非常重要的模式,代理模式有两个角色,一个是代理类,一个是委托类,委托类也是真正的业务类,两者都有相同的接口; 代理类主要负责为委托类预处理消息、过滤消息、把消息转发 给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象并不真正实现服务,而是通过 调用委托类的对象的相关方法,来提供特定的服务。 Spring中的AOP基本原理就是动态代理。 代理模式可以根据代理类创建时期的不同分为两种: * 静态代理:程序员需要编写特定的源代码,在程序运行前,.class已存在 * 动态代理:在系统运行时,Java反射自动生成 静态代理就不记录了,值得好好学学的是动态代理。学习动态代理首先要学一下Java反射,它的实现常见的有两种: * JDK提供的InvocationHandler 接口和java.lang.