django-驗證碼/靜態檔案處理
(一)設定驗證碼 在views.py檔案裡定義驗證碼
#字型顏色隨機
def rndChar():
return chr(random.randint(65, 90))
# 隨機顏色1:
def rndColor():
return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
# 隨機顏色2:
def rndColor2():
return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
def identifying(request): -------------定義驗證碼
width = 60 * 4 ---------定義寬
height = 60 ---------定義高
image = Image.new('RGB', (width, height), (255, 255, 255)) ------定義一個新的圖片
# 建立Font物件:
font = ImageFont.truetype('LiberationSans-BoldItalic.ttf', 36) -----定義字型
# 建立Draw物件:
draw = ImageDraw.Draw(image) -------------------定義畫素
# 填充每個畫素:
for x in range(width):
for y in range(height):
draw.point((x, y), fill=rndColor())
# 輸出文字:
codes = ' '
for t in range(4):
code=rndChar()
codes += code
draw.text((60 * t + 10, 10), code, font=font, fill=rndColor2())
# 模糊:
image = image.filter(ImageFilter.BLUR)
#將驗證碼字串儲存到session中 ---------為了判斷使用者驗證碼輸入的是否正確
request.session['codes'] = codes
request.session.set_expiry(0)
f=BytesIO() --------------圖片用位元組來儲存
image.save(f,'jpeg') ------------提交圖片
return HttpResponse(f.getvalue(),'image/jpeg') ----------獲取圖片,並定義圖片的格式
(二)在登入的方法裡驗證
#判斷驗證碼
userverification=request.POST.get('identifying')
codes=request.session['codes']
print(codes)
if userverification == None or codes.upper() != userverification.upper(): -----如果驗證碼為空或者不符合圖片
context = {'userverification_error': '驗證碼輸入錯誤'}
return render(request, 'user/login.html', context)
url='/user/identifying'
function checkimg(abc) {
abc.src=url+'?num='+new Date()
}
(三)處理靜態檔案
專案中的CSS、圖片、js都是靜態檔案
配置靜態檔案
(第一步)
在settings 檔案中定義靜態內容
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
在專案根目錄下建立static目錄,再建立當前應用名稱的目錄
/static/myapp/
在模板中可以使用硬編碼
/static/my_app/myexample.jpg
在模板中可以使用static編碼
{ % load static from staticfiles %}
相關文章
- ASP.NET Core靜態檔案處理原始碼探究ASP.NET原始碼
- 使用Django來處理對於靜態檔案的請求Django
- Go語言中介軟體框架 Negroni 的靜態檔案處理原始碼分析Go框架原始碼
- Laravel 專案 偽靜態分頁處理Laravel
- python指令碼處理偽靜態注入Python指令碼
- 3、python指令碼處理偽靜態注入Python指令碼
- Sanic 靜態檔案
- Oracle OS認證、口令檔案、密碼丟失處理Oracle密碼
- python爬蟲之處理驗證碼Python爬蟲
- QTP處理驗證碼的一種方法QT
- 靜態密碼已經”OUT”探索身份驗證新方式密碼
- 3、Webserver如何處理動態檔案WebServer
- 跟我一起學.NetCore之靜態檔案處理的那些事NetCore
- nginx偽靜態檔案Nginx
- php生成靜態檔案PHP
- Python驗證碼識別處理例項Python
- ASP.NET Core 1.0 靜態檔案、路由、自定義中介軟體、身份驗證簡介ASP.NET路由
- oracle本地驗證和密碼檔案Oracle密碼
- 字元編碼與檔案處理字元
- 檔案下載檔名亂碼處理
- 影片美顏SDK動態處理技術與靜態處理技術
- SpringBoot處理靜態資源Spring Boot
- 證券行業檔案自動化處理行業
- Flutter-靜態資源和專案圖片的處理Flutter
- nginx靜態檔案快取Nginx快取
- Django靜態檔案輸出Django
- 靜態引數檔案配置
- 爬蟲遇到頭疼的驗證碼?教你彈窗處理和驗證碼識別爬蟲
- nacos2.3 密碼驗證的處理過程密碼
- LNMP–配置靜態檔案快取LNMP快取
- nginx 只快取靜態檔案Nginx快取
- 7、靜態檔案的載入
- 自動化測試時對驗證碼的處理
- [R]檔案處理
- bat處理檔案BAT
- bat檔案處理BAT
- SCAU 高程綜合實驗:檔案操作與字元處理字元
- Shell指令碼逐行處理文字檔案技巧指令碼