mini web伺服器 驗證碼生成

2021-08-27 18:05:45 字數 2125 閱讀 2861

mini-web伺服器

- 能夠完成簡單的請求處理

- 使用http協議

- 目的:加深對網路程式設計的認識、為後面階段學習web做鋪墊

簡單資料結構

- 排列組合

import itertools

# 排列:從m個元素中提取n個,所有可能就是排列(有順序)

# 當m等於n時的排列稱為全排列

# it = itertools.permutations([1, 2, 3], 3)

# 組合:沒有順序的排列

# it = itertools.combinations([1, 2, 3, 4], 2)

# 笛卡爾乘積:多個序列中的元素組合

# it = itertools.product([1, 2], [3, 4], [5, 6])

# 上面多個相同序列的場景

it = itertools.product([1, 2], repeat=3)

print(it)

for i in it:

print(i)

# 可以轉換為列表

# print(list(it1))

- 計數器及雙向佇列

from collections import counter, deque

# 統計序列中元素出現的次數

c = counter([1, 2, 3, 4, 1, 2, 3, 1, 2, 1])

print(c)

print(type(c))

# 可以轉換為字典

print(dict(c))

# 雙向佇列

d = deque([1, 2, 3])

# 右側追加

# 左側新增

# 右側彈出資料

print(d.pop())

# 左側彈出資料

print(d.popleft())

# 右側擴充套件

d.extend(['a', 'b', 'c'])

# 左側擴充套件

d.extendleft(['aa', 'bb', 'cc'])

# 迴圈移動:正數表示向右移動,負數表示向左移動

# d.rotate(1)

d.rotate(-1)

print(d)

print(list(d))

- 鍊錶

- 新增節點

- 追加節點

- 插入節點

- 刪除節點

處理- 擴充套件庫:pil,只支援py2,需要安裝pillow庫之後才能支援py3

- 安裝:pip install pillow

- 預備知識:

- 顏色:r(紅)、g(綠)、b(藍)、a(透明)

- 驗證碼:

from pil import image, imagefont, imagedraw, imagefilter

from random import randint

# 產生隨機的顏色

def rand_color():

return (randint(128, 255), randint(128, 255), randint(128, 255))

# 建立

img = image.new('rgb', (200, 50), 'white')

# 建立字型

font = imagefont.truetype('xdxwz.ttf', 30)

# 建立畫筆

draw = imagedraw.draw(img)

# 寫字

for i in range(4):

draw.text((i*50+15, 0), 'a', font=font, fill='black')

# 畫干擾點

for i in range(100*50):

x = randint(0, 200)

y = randint(0, 50)

draw.point((x, y), fill=rand_color())

# 使用濾鏡,會生成新的

img = img.filter(imagefilter.gaussianblur)

# 展示,會調出系統的檢視器

img.show()

驗證碼一(驗證碼生成)

根據手機好查詢密碼 return type description code for i 0 i 6 i 4位驗證碼也可以用rand 1000,9999 直接生成 將生成的驗證碼寫入session,備驗證時用 session start session verify num code 建立,定義顏色...

生成驗證碼

在此處放置使用者 以初始化頁面 bitmap image new bitmap int math.ceiling validatenum.length 12.5 22 graphics g graphics.fromimage image tryfinally region web 窗體設計器生成的...

生成驗證碼

生成驗證碼的類 using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web...