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原始碼
- Go語言中介軟體框架 Negroni 的靜態檔案處理原始碼分析Go框架原始碼
- python指令碼處理偽靜態注入Python指令碼
- Laravel 專案 偽靜態分頁處理Laravel
- 3、python指令碼處理偽靜態注入Python指令碼
- 驗證碼影像處理(JavaScript 版)JavaScript
- 跟我一起學.NetCore之靜態檔案處理的那些事NetCore
- Sanic 靜態檔案
- python爬蟲之處理驗證碼Python爬蟲
- SpringBoot處理靜態資源Spring Boot
- 3、Webserver如何處理動態檔案WebServer
- nginx偽靜態檔案Nginx
- 字元編碼與檔案處理字元
- 證券行業檔案自動化處理行業
- Flutter-靜態資源和專案圖片的處理Flutter
- 影片美顏SDK動態處理技術與靜態處理技術
- jq驗證檔案
- 爬蟲遇到頭疼的驗證碼?教你彈窗處理和驗證碼識別爬蟲
- nacos2.3 密碼驗證的處理過程密碼
- 自動化測試中的驗證碼處理
- python 檔案處理Python
- python處理檔案Python
- python檔案處理Python
- 7、靜態檔案的載入
- Shell指令碼逐行處理文字檔案技巧指令碼
- 自動化測試時對驗證碼的處理
- python處理txt檔案Python
- window 批處理檔案
- Python之檔案處理Python
- Go xml檔案處理GoXML
- SCAU 高程綜合實驗:檔案操作與字元處理字元
- Django 靜態檔案管理與部署指南Django
- asp .net core 靜態檔案資源
- 03 #### 讀取靜態檔案-圖片
- 啟動靜態檔案中介軟體
- go編譯靜態檔案到exeGo編譯
- 關於Play框架的靜態檔案框架
- url_for函式與靜態檔案函式