Time of Update: 2016-06-06
本文執行個體講述了python使用arp欺騙偽造網關的方法。分享給大家供大家參考。具體實現方法如下:#coding:utf-8'''arp欺騙區域網路pc,將偽造的網關mac以網關的arp應答發送給pc'''from scapy.all import ARP,send,arpingimport sys,restdout=sys.stdoutIPADDR="192.168.1.*"gateway_ip='192.168.1.1'#偽造網關mac地址gateway_hw='00:11:22:33:4
Time of Update: 2016-06-06
Python 中有三個非常好用的資料結構,列表,元組和字典, 元組是不可變的,列表可以儲存任意類型的Python對象,並可以隨意擴充沒有大小限制, 字典是一個key-value的索引值映射的類型,可以存放任何Python對象,可以嵌套字典, 值可以是字典元組或者字典這裡說是Python 字典和列表的陷阱不如說是Python的一些特性,如果不瞭解這些特性 就會引發一些難以尋找的bug下面我們來介紹這些特性Python中所有對列表和字典的使用僅僅是對原來對象的引用而不是建立一個新的對象 如下面代碼:
Time of Update: 2016-06-06
最近重新拾起Django,但是Django並不支援mongodb,但是有一個模組mongoengine可以實現Django Model類似的封裝.但是mongoengine的中文文檔幾乎沒有,有的也是簡短的幾句介紹和使用.下面我就分享一下我在使用過程中所記錄下的一些筆記,可能有點亂.大家可以參考一下.安裝mongoengineeasy_install pymongo # 依賴庫easy_install mongoengine基本使用from mongoengine import *from
Time of Update: 2016-06-06
首先來分析下需求,web程式後台需要認證,後台頁麵包含多個頁面,最普通的方法就是為每個url添加認證,但是這樣就需要每個每個綁定url的後台函數都需要添加類似或者相同的代碼,但是這樣做代碼就過度冗餘,而且不利於擴充.接下來我們先不談及裝飾器,我們都知道Python是個很強大的語言,她可以將函數當做參數傳遞給函數,最簡單的:def p(): print 'Hello,world'def funcfactor(func): print 'calling function named',
Time of Update: 2016-06-06
這兩天為用bottle+mongodb寫的一個項目加上登入功能,無奈怎麼都擷取不到儲存的cookie,文檔給出讓我們這樣操作cookie的程式碼片段:@route('/login')def login (): username = request .forms .get('username ') password = request .forms .get('password ') if check_user_credentials(username, password):
Time of Update: 2016-06-06
最近有一個小的web項目,想用喜愛都python,但是想到之前接觸過都django我感覺一陣不寒而慄,為什麼?Django的配置太過複雜,而且小項目不太適合MVC的開發模式,所以我將目光轉向了web.py這個小型web架構,並且真正讓我動心都是其官方網站上都一句話:"Django lets you write web apps in Django. TurboGears lets you write web apps in TurboGears. Web.py lets you
Time of Update: 2016-06-06
django-pipeline 是一個 Django 下非常方便的靜態資源管理 app,尤其是 1.2 版本之後,利用 django-staticfiles 的collectstatic 命令,在開發、部署環境下切換非常方便。寫 codinn.com 代碼的時候,靜態資源管理方面遇到了一些煩人的事情: 為了加速頁面載入速度,瀏覽器會緩衝靜態檔案,靜態資源更新後,瀏覽器很可能從緩衝提取到期的靜態檔案 自己寫的 CSS/JS 要手工 minify,非常麻煩 零碎的
Time of Update: 2016-06-06
為什麼寫這個程式,為什麼不給這個程式配備gui?原因很簡單,因為我是一個命令列控,Linux習慣了不習慣了滑鼠,總覺得點著不如敲命令快,各位在看這篇文章就說明和本人有相同的愛好.這個用python寫的翻譯工具是通過google來實現的,由於google返回的資料不是很規範(或者說我沒有找到規律),現在前三項能正常顯示(源詞,翻譯結果,和漢語拼音).下面的詞性和其他釋義可能不同,見諒,望大神可以指點下小弟和幫小弟完善,這裡趕緊不盡.好了不費話了,下面放代碼:#!/usr/bin/env
Time of Update: 2016-06-06
最近遷移了wordpress,系統升級為CentOS 6,很奇怪的一個問題,在原來CentOS 5.8下用的很正常的定時備份資料庫並通過郵件發送的指令碼不能發送附件,其他都正常,郵件內容也是uuencode產生的檔案編碼,但是就是不產生附件.而且找不出原因,望有知道的不吝賜教.為瞭解決這一問題,我用Python寫了一個mail用戶端,可以發送附件,是一個命令列程式.廢話不多說.貼代碼:#!/usr/bin/env python#-*- coding: utf8 -*-'''#==========
Time of Update: 2016-06-06
列表產生式即List Comprehensions,是Python內建的非常簡單卻強大的可以用來建立list的產生式。舉個例子,要產生list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]可以用range(1, 11):>>> range(1, 11)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]但如果要產生[1x1, 2x2, 3x3, ..., 10x10]怎麼做?方法一是迴圈:>>> L = []>>> for x in range(1, 11):...
Time of Update: 2016-06-06
在函數內部,可以調用其他函數。如果一個函數在內部調用自身本身,這個函數就是遞迴函式。舉個例子,我們來計算階乘n! = 1 x 2 x 3 x ... x n,用函數fact(n)表示,可以看出:fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n所以,fact(n)可以表示為n x fact(n-1),只有n=1時需要特殊處理。於是,fact(n)用遞迴的方式寫出來就是:def fact(n): if
Time of Update: 2016-06-06
輸出用print加上字串,就可以向螢幕上輸出指定的文字。比如輸出'hello, world',用代碼實現如下:>>> print 'hello, world'print語句也可以跟上多個字串,用逗號“,”隔開,就可以連成一串輸出:>>> print 'The quick brown fox', 'jumps over', 'the lazy dog'The quick brown fox jumps over the lazy
Time of Update: 2016-06-06
剛才好無聊,突然想起來之前做一個課表的點子,於是百度了起來。剛開始,我是這樣想的:在寫牆的時候,用到了urllib2【兩行代碼抓網頁】,那麼就只剩下解析html了。於是百度:python解析html。發現一篇好文章,其中介紹到了pyQuery。pyQuery 是 jQuery 在 Python 中的實現,能夠以 jQuery 的文法來操作解析 HTML 文檔。使用前需要安裝,Mac安裝方法如下:sudo easy_install pyqueryOK!安裝好了!我們來試一試吧:from
Time of Update: 2016-06-06
資料類型電腦顧名思義就是可以做數學計算的機器,因此,電腦程式理所當然地可以處理各種數值。但是,電腦能處理的遠不止數值,還可以處理文本、圖形、音頻、視頻、網頁等各種各樣的資料,不同的資料,需要定義不同的資料類型。在Python中,能夠直接處理的資料類型有以下幾種:整數Python可以處理任意大小的整數,當然包括負整數,在程式中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。電腦由於使用二進位,所以,有時候用十六進位表示整數比較方便,十六進位用0x首碼和0-9,a-f表示,
Time of Update: 2016-06-06
在 WebHostingTalk 論壇上有些國外奸商會把虛擬機器當作獨立伺服器賣,去年7月份的時候就有一位中國同胞上當受騙,並在 WHT 上發帖聲討,證據確鑿,甚至連服務商自己也承認,回帖達355篇。這家獨立伺服器/VPS 供應商 HostATree.com 居然大膽的把 OpenVZ VPS 這種一看就知道是虛擬機器的虛擬機器當作獨立伺服器賣,暈,至少也要弄個 VMWare/KVM/Xen HVM 吧(更難發現是虛擬機器),用 OpenVZ
Time of Update: 2016-06-06
在 Python 中也可以像 gcc/gdb 那樣偵錯工具,只要在運行 Python 程式時引入 pdb 模組(假設要調試的程式名為 d.py): 代碼如下:$ vi d.py#!/usr/bin/pythondef main(): i, sum = 1, 0 for i in xrange(100): sum = sum + i print sumif __name__ == '__main__':
Time of Update: 2016-06-06
PyMongo下載PyMongo下載地址:http://pypi.python.org/pypi/pymongo/#downloads當前可下載選項: 代碼如下:pymongo-1.11.tar.gz Sourcepymongo-1.11.win32-py2.7.exe MS Windows
Time of Update: 2016-06-06
listPython內建的一種資料類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素。比如,列出班裡所有同學的名字,就可以用一個list表示:>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates['Michael', 'Bob', 'Tracy']變數classmates就是一個list。用len()函數可以獲得list元素的個數:>>>
Time of Update: 2016-06-06
這幾天在翻舊代碼時發現以前寫的注釋部分有很多單詞拼字錯誤,這些單詞錯得不算離譜,應該可以用工具自動錯誤修正絕大部分。用 Python 寫個拼字檢查指令碼很容易,如果能很好利用 aspell/ispell 這些現成的小工具就更簡單了。要點1、輸入一個拼字錯誤的單詞,調用 aspell -a 後得到一些候選正確單詞,然後用距離編輯進一步嗮選出更精確的詞。比如運行 aspell -a,輸入 ‘hella' 後得到如下結果:hell, Helli, hello, heal, Heall, he'll,
Time of Update: 2016-06-06
Python內建的filter()函數用於過濾序列。和map()類似,filter()也接收一個函數和一個序列。和map()不同的時,filter()把傳入的函數依次作用於每個元素,然後根據傳回值是True還是False決定保留還是丟棄該元素。例如,在一個list中,刪掉偶數,只保留奇數,可以這麼寫:def is_odd(n): return n % 2 == 1filter(is_odd, [1, 2, 4, 5, 6, 9, 10, 15])# 結果: [1, 5, 9,