Time of Update: 2016-06-06
大概五年前吧,我那時還在為一家約會網站做開發工作。他們是早期創業公司,但他們也開始擁有了一些穩定使用者量。不像其他約會網站,這家公司向來以潔身自好為主要市場形象。它不是一個供你鬼混的網站——是讓你能找到忠實伴侶的地方。由於投入了數以百萬計的風險資本(在US大蕭條之前),他們關於真愛並找尋靈魂伴侶的線上廣告勢如破竹。Forbes(福布斯,美國著名財經雜誌)採訪了他們。全國性電視節目也對他們進行了專訪。早期的成功促成了事業起步時讓人垂涎的指數級增長現象——他們的使用者數量以每月加倍的速度增長。對他們
Time of Update: 2016-06-06
廠裡上個網需要設定Proxy 伺服器,切換各種環境『包括但不僅限於開發環境、QA、預上線、驗收、生產環境、壓力測試、Demo……』都需要給瀏覽器設定不同的Proxy 伺服器。雖然俺有神器Firefox+Change Host+HostAdmin+Proxy
Time of Update: 2016-06-06
這個東西估計宅男沒幾個不熟悉的吧,經過這麼兩年多的發展終於向開放平台跨出了友好的一步。蛋疼的以為會出一個詳細的api等介面,興奮不已的去申請了公用平台,然後開始找各種api的位置……花費了近一個小時,依然沒找到……最後動用Google大殺器,終於找到了這麼個連結。我了個去的,沒比這還簡單的api文檔了吧。最讓人無法理解的是:居然沒有本地開發環境支援,每次都要放在生產環境去調試。最讓人欣慰的是:就那麼倆方法,生產環境調試幾次也就完事了。Python(bottle)版代碼如下:# -*-
Time of Update: 2016-06-06
為驅動開發(Behavior-Driven
Time of Update: 2016-06-06
我們知道Python3.x引入了新的字串格式化文法。不同於Python2.x的 代碼如下:"%s %s "%(a,b) Python3.x是 代碼如下:"{0} {1}".format(a,b) 今天我在用MySQLdb時,需要用帶參數的 代碼如下:cursor.execute(sql,param) 語句來完成SQL操作。被其他文章的陳舊說法給誤導,用了 代碼如下:cursor.execute('insert into test values(%s,%s,%s)',param)
Time of Update: 2016-06-06
首先介紹下怎麼發現的吧, 線上的項目日誌是通過 logging 模組打到 syslog 裡, 跑了一段時間後發現 syslog 的 UDP 串連超過了 8W, 沒錯是 8 W. 主要是 logging 模組用的不對我們之前有這麼一個需求, 就是針對每一個串連日誌輸出當前串連的資訊, 所以每一個 串連就建立了一個日誌執行個體, 並分配一個 Formatter, 建立日誌執行個體為了區分其他串連 所以我就簡單粗暴的用了當前對象的 id 來作為日誌名稱:import loggingclass
Time of Update: 2016-06-06
由於tornado內建的AsyncHTTPClient功能過於單一, 所以自己寫了一個基於Tornado的HTTP用戶端庫, 鑒於自己多處使用了這個庫, 所以從項目中提取出來, 寫成一個單獨庫 tornadohttpclientTornadoHTTPClient 是一個基於Tornado的高效的非同步HTTP用戶端庫, 支援Cookie和代理, 目前僅在Python2.7平台上測試過, 不支援Python3聽取了仙子君的意見,
Time of Update: 2016-06-06
讀取、寫入和 Python編寫程式的最後一個基本步驟就是從檔案讀取資料和把資料寫入檔案。閱讀完這篇文章之後,可以在自己的 to-do 列表中加上檢驗這個技能學習效果的任務。簡單輸出貫穿整個系列,一直用 print 語句寫入(輸出)資料,它預設把運算式作為 string 寫到螢幕上(或控制台視窗上)。清單 1 示範了這一點。清單 1 重複了第一個 Python 程式 “Hello, World!”,但是做了一些小的調整。清單 1. 簡單輸出>>> print "Hello
Time of Update: 2016-06-06
使用Python寫檔案的時候,或者將網路資料流寫入到本地檔案的時候,大部分情況下會遇到:UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position ... 這個問題。 網路上有很多類似的檔案講述如何解決這個問題,但是無非就是encode,decode相關的,這是導致該問題出現的真正原因嗎?不是的。 很多時候,我們使用了decode和encode,試遍了各種編碼,utf8,utf-8,gbk,gb2312等等,
Time of Update: 2016-06-06
裝飾器對與Python新手以至於熟悉Python的人都是一個難理解, 難寫的東西. 那麼今天就分享一下我對Python 裝飾器的理解所謂裝飾器僅僅是一種文法糖, 可作用的對象可以是函數也可以是類, 裝飾器本身是一個函數, 其主要工作方式就是將被裝飾的類或者函數當作參數傳遞給裝飾器函數, 比如定義如下裝飾器import timedef run_time(func): def wrapper(*args, **kwargs): start = time.time() r = func(
Time of Update: 2016-06-06
for 迴圈本系列前面 “探索 Python,第 5 部分:用 Python 編程” 一文討論了 if 語句和 while 迴圈,討論了複合陳述式以及適當縮排 Python 語句來指示相關 Python 代碼塊。該文的結尾介紹了 Python for 迴圈。但就其使用和功能來說,for 迴圈更值得關注,所以本文單獨講述該迴圈。for 迴圈有一個簡單的文法,使您可以從容器物件中提取單個項目並對其進行某些操作。簡單地說,使用 for 迴圈,可以迭代中對象集合的項目。對象集合可以是任何 Python
Time of Update: 2016-06-06
Blog Posts的提交讓我們從簡單的開始。首頁上必須有一張使用者提交新的post的表單。首先我們定義一個單域表單對象(fileapp/forms.py): class PostForm(Form): post = TextField('post', validators = [Required()])下面,我們把這個表單添加到template中(fileapp/templates/index.html): {% extends "base.html" %} {% block
Time of Update: 2016-06-06
本文執行個體講述了Python實現的資料結構與演算法之隊列。分享給大家供大家參考。具體分析如下:一、概述隊列(Queue)是一種先進先出(FIFO)的線性資料結構,插入操作在隊尾(rear)進行,刪除操作在隊首(front)進行。二、ADT隊列ADT(抽象資料類型)一般提供以下介面:① Queue() 建立隊列② enqueue(item) 向隊尾插入項③ dequeue() 返回隊首的項,並從隊列中刪除該項④ empty() 判斷隊列是否為空白⑤ size()
Time of Update: 2016-06-06
簡述在大多數此類教程中都會不遺餘力的介紹如何使用資料庫。今天我們對資料庫暫且不表,而是來關注另一個在web應用中很重要的特性:如何推送郵件給使用者。在某個輕量級應用中我們可能會添加一個如下的郵件服務功能:當使用者有了新的粉絲後,我們發送一封郵件通知使用者。有很多方法可以實現這個特性,而我們希望提供出一種可複用的通用架構來處理。 Flask-Mail介紹對於我們來說是幸運的,現在已經有很多外部外掛程式來處理郵件,雖說不能百分百按照我們的想法去處理,但已經相當接近了。 在虛擬環境中安裝 Flask-
Time of Update: 2016-06-06
子類裡訪問父類的同名屬性,而又不想直接引用父類的名字,因為說不定什麼時候會去修改它,所以資料還是只保留一份的好。其實呢,還有更好的理由不去直接引用父類的名字,參見 Python's super() considered super! | Deep Thoughts by Raymond Hettinger。這時候就該 super() 登場啦—— 代碼如下:class A: def m(self): print('A')class B(A): def m(self): print(
Time of Update: 2016-06-06
本文執行個體講述了Python實現的資料結構與演算法之雙端隊列。分享給大家供大家參考。具體分析如下:一、概述雙端隊列(deque,全名double-ended queue)是一種具有隊列和棧性質的線性資料結構。雙端隊列也擁有兩端:隊首(front)、隊尾(rear),但與隊列不同的是,插入操作在兩端(隊首和隊尾)都可以進行,刪除操作也一樣。二、ADT雙端隊列ADT(抽象資料類型)一般提供以下介面:① Deque() 建立雙端隊列② addFront(item) 向隊首插入項③
Time of Update: 2016-06-06
最近在做cocos2d-x的簡明配置,發現有的朋友的文字編輯器,自動將\r\n截斷成\n,(在unix上換行使用\n,windows上,換行使用的是\r\n)於是,寫了這個指令碼,希望對一些朋友有所協助,不用一行一行去改import osdef replace(filePath, w2u): try: oldfile = open(filePath, "rb+") #這裡必須用b開啟 path, name = os.path.split(filePath)
Time of Update: 2016-06-06
平時自己寫了很多代碼,但從沒好好計算總共寫了多少行,面試時被問起來,就傻了。。。閑來無事,寫個python程式來統計下import os################################################################################def calcLine(baseDir): lineCount = 0 try: for fileName in os.listdir(baseDir): fullPath =
Time of Update: 2016-06-06
NumPy是Python中眾多科學軟體包的基礎。它提供了一個特殊的資料類型ndarray,其在向量計算上做了最佳化。這個對象是科學數值計算中大多數演算法的核心。相比於原生的Python,利用NumPy數組可以獲得顯著的效能加速,尤其是當你的計算遵循單指令多資料流(SIMD)範式時。然而,利用NumPy也有可能有意無意地寫出未最佳化的代碼。在這篇文章中,我們將看到一些技巧,這些技巧可以協助你編寫高效的NumPy代碼。我們首先看一下如何避免不必要的數組拷貝,以節省時間和記憶體。因此,我們將需要深入N
Time of Update: 2016-06-06
本文執行個體講述了python開啟檔案並擷取檔案相關屬性的方法。分享給大家供大家參考。具體分析如下:下面的代碼通過open函數開啟檔案,並輸出檔案名、開啟狀態、開啟模式等屬性#!/usr/bin/python# Open a filefo = open("foo.txt", "wb")print "Name of the file: ", fo.nameprint "Closed or not : ", fo.closedprint "Opening mode : ",