1.準備階段
滑動驗證碼我們可以直接用GEETEST的滑動驗證碼。
打開網址:https://www.geetest.com/?,找到技術文檔中的行為驗證,打開部署文檔,點擊Python,下載ZIP包。
ZIP包下載地址:https://github.com/GeeTeam/gt3-python-sdk/archive/master.zip
解壓,找到django_demo,為了方便復制粘貼代碼,可以用編輯器打開項目。
2.實施
自己先寫一個簡單的登錄,然后將django_demo中的關鍵代碼復制到我們自己的項目中。過程省去,我直接貼代碼。
2.1.login.py(登錄界面)

" en " > " UTF-8 " >歡迎登錄 " stylesheet " href= " /static/bootstrap/css/bootstrap.min.css " > " stylesheet " href= " /static/mystyle.css " >class = " container " >class = " row " >
2.2.index.py(跳轉界面)

" en " > " UTF-8 " >index 這是index界面
2.3.urls.py(部署路徑)

""" BBS URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/2.2/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """ from django.contrib import admin from django.urls import path from blog import views urlpatterns = [ path( ' login/ ' , views.login), path( ' index/ ' , views.index), # 極驗滑動驗證碼,獲取驗證碼的url path( ' pc-geetest/register/ ' , views.get_geetest), ]
2.4.views.py

from django.shortcuts import render,HttpResponse from geetest import GeetestLib from django.http import JsonResponse from django.contrib import auth # Create your views here. # 使用極驗滑動驗證碼的登錄功能 def login(request): # if request.is_ajax(): # 如果是AJAX請求 if request.method == " POST " : # 初始化一個給AJAX返回的數據 ret = { " status " : 0, " msg " : "" } # 從提交過來的數據中 取到用戶名和密碼 username = request.POST.get( " username " ) pwd = request.POST.get( " password " ) # 獲取極驗 滑動驗證碼相關的參數 gt = GeetestLib(pc_geetest_id, pc_geetest_key) challenge = request.POST.get(gt.FN_CHALLENGE, '' ) validate = request.POST.get(gt.FN_VALIDATE, '' ) seccode = request.POST.get(gt.FN_SECCODE, '' ) status = request.session[gt.GT_STATUS_SESSION_KEY] user_id = request.session[ " user_id " ] if status: result = gt.success_validate(challenge, validate, seccode, user_id) else : result = gt.failback_validate(challenge, validate, seccode) if result: # 驗證碼正確 # 利用auth模塊做用戶名和密碼的校驗 user = auth.authenticate(username=username, password= pwd) if user: # 用戶名密碼正確 # 給用戶做登錄 auth.login(request, user) ret[ " msg " ] = " /index/ " else : # 用戶名密碼錯誤 ret[ " status " ] = 1 ret[ " msg " ] = " 用戶名或密碼錯誤! " else : ret[ " status " ] = 1 ret[ " msg " ] = " 驗證碼錯誤 " return JsonResponse(ret) return render(request, " login.html " ) def index(request): return render(request, ' index.html ' ) # 處理極驗驗證碼的試視圖 # 請在官網申請ID使用,示例ID不可使用 pc_geetest_id = " b46d1900d0a894591916ea94ea91bd2c " pc_geetest_key = " 36fc3fe98530eea08dfc6ce76e3d24c4 " def get_geetest(request): user_id = ' test ' gt = GeetestLib(pc_geetest_id, pc_geetest_key) status = gt.pre_process(user_id) request.session[gt.GT_STATUS_SESSION_KEY] = status request.session[ " user_id " ] = user_id response_str = gt.get_response_str() return HttpResponse(response_str)
2.5.settings.py
settings.py需要加一些東西。首先創建一個數據庫,用于存儲各類表。創建好之后,需要連接pycharm。

DATABASES = { ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , ' NAME ' : ' bbs ' , ' HOST ' : ' 127.0.0.1 ' , ' PORT ' : ' 3306 ' , ' USER ' : ' root ' , ' PASSWORD ' : ' 000000 ' , } }
同時在項目下的app目錄中的__init__.py中加上兩行代碼,告訴pychram我用了mysql。

import pymysql pymysql.install_as_MySQLdb()
在settings.py的最下方加上:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, " static " ) ]
2.6.生成用戶
終端執行兩行代碼:
python manage.py makemigrations
python manage.py migrate
在auth_user表中添加一個用戶,超級用戶和普通用戶都可以。
python manage.py createsuperuser
3.靜態文件
https://files.cnblogs.com/files/missdx/static.rar
4.效果圖
5.項目目錄結構圖
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
