Flsak項目--圖片驗證碼

0. 圖片驗證碼的使用流程

在這里插入圖片描述

2.后端接口編寫

在這里插入圖片描述
verify_code.py中編寫接口代碼:

# coding:utf-8from . import api
from ihome.utils.captcha.captcha import captcha
from ihome import redis_store, constants, db
from flask import current_app, jsonify, make_response, request
from ihome.utils.response_code import RET
from ihome.models import User
from ihome.libs.yuntongxun.sms import CCP
import random
# from ihome.tasks.task_sms import send_sms
from ihome.tasks.sms.tasks import send_sms# GET 127.0.0.1/api/v1.0/image_codes/<image_code_id>
@api.route("/image_codes/<image_code_id>")
def get_image_code(image_code_id):"""獲取圖片驗證碼: params image_code_id:  圖片驗證碼編號:return:  正常:驗證碼圖片  異常:返回json"""# 業務邏輯處理# 生成驗證碼圖片# 名字,真實文本, 圖片數據name, text, image_data = captcha.generate_captcha()# 將驗證碼真實值與編號保存到redis中, 設置有效期# redis:  字符串   列表  哈希   set# "key": xxx# 使用哈希維護有效期的時候只能整體設置# "image_codes": {"id1":"abc", "":"", "":""} 哈希  hset("image_codes", "id1", "abc")  hget("image_codes", "id1")# 單條維護記錄,選用字符串# "image_code_編號1": "真實值"# "image_code_編號2": "真實值"# redis_store.set("image_code_%s" % image_code_id, text)# redis_store.expire("image_code_%s" % image_code_id, constants.IMAGE_CODE_REDIS_EXPIRES)#                   記錄名字                          有效期                              記錄值try:redis_store.setex("image_code_%s" % image_code_id, constants.IMAGE_CODE_REDIS_EXPIRES, text)except Exception as e:# 記錄日志current_app.logger.error(e)# return jsonify(errno=RET.DBERR,  errmsg="save image code id failed")return jsonify(errno=RET.DBERR,  errmsg="保存圖片驗證碼失敗")# 返回圖片resp = make_response(image_data)resp.headers["Content-Type"] = "image/jpg"return resp

并在__init__.py文件中導入藍圖:
在這里插入圖片描述

3.開發流程以及接口文檔編寫

在這里插入圖片描述

接口文檔1. 接口名字
2. 描述(描述清楚接口的功能)
3. url
4. 請求方式
5. 傳入參數
6. 返回值
------------------------------示例如下--------------------------------
1.接口:獲取圖片驗證碼2.描述:前端訪問,可以獲取到驗證碼圖片3.url: /api/v1.0/image_codes/<image_code_id>4.請求方式: GET5.傳入參數:格式:路徑參數 (參數是查詢字符串、請求體的表單、json、xml)名字             類型       是否必須      說明image_code_id    字符串       是         驗證碼圖片的編號6.返回值:格式: 正常:圖片, 異常:json名字             類型       是否必傳      說明errno          字符串         否        錯誤代碼errmsg         字符串         否        錯誤內容實例:'{"errno": "4001", "errmsg": "保存圖片驗證碼失敗"}'

4.前端編寫

靜態文件static中,編寫register.py文件:
在這里插入圖片描述并編寫register.js文件,生成圖片的編號以及請求圖片的url地址。
在這里插入圖片描述

5.效果展示

頁面展示:
在這里插入圖片描述數據庫展示:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452772.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452772.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452772.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數據庫與數據庫管理系統

數據庫是長期存儲在計算機內有組織的大量的共享的數據集合。可以供各種用戶共享&#xff0c;具有最小冗余度和較高的數據獨立性。數據庫管理系統在數據庫建立、運用和維護時對數據庫進行統一控制&#xff0c;以保證數據的完整性、安全性&#xff0c;并在多用戶同時使用數據庫時…

如何提高團隊情商

在公司發展中&#xff0c;總裁&#xff0c;總監&#xff0c;經理&#xff0c;項目經理&#xff0c;他們對團隊的建設意義重大&#xff0c;工作很重要&#xff0c;但團隊的情商才更重要&#xff0c;筆者公司的一個團隊&#xff0c;三十多個人就像一個人&#xff0c;命令所到之處…

ubuntu java classpath 設置_在Ubuntu中正確設置java classpath和java_home

我有錯誤Exception in thread"main" java.lang.NoClassDefFoundError:當我嘗試在Ubuntu上運行編譯類時。我使用的是一個非常簡單的helloworld示例&#xff0c;互聯網上已有數百萬的響應表明我的classpath和java_home變量設置錯誤。但是&#xff0c;我已經將etc/envir…

Polo the Penguin and Matrix

Little penguin Polo has an n??m matrix, consisting of integers. Lets index the matrix rows from 1 to n from top to bottom and lets index the columns from 1 to m from left to right. Lets represent the matrix element on the intersection of row i and column…

趣解 XSS和CSRF的原理

參考文章&#xff1a;趣解 XSS和CSRF的原理 推薦網站&#xff1a;古黑論 感謝作者分享&#xff01;

js異步解決方案 --- 回調函數 vs promise vs generater/yield vs async/await

javascript -- 深度解析異步解決方案 高級語言層出不窮, 然而唯 js 鶴立雞群, 這要說道js的設計理念, js天生為異步而生, 正如布道者樸靈在 node深入淺出--(有興趣的可以讀一下, 很有意思^_^) , 異步很早就存在于操作系統的底層, 意外的是&#xff0c;在絕大多數高級編程語言中…

什么是TPDU

TPDU,全稱Transport Protocol Data Unit&#xff0c;是指傳送協議數據單元。代表從一個傳輸實體發送至另一個傳輸實體的消息。 我們需要為傳輸實體之間交換的數據單元起一個更加一般化的名字&#xff0c;TCP的術語是數據段&#xff0c;它很容易混淆&#xff0c;而且在TCP領域之…

sql注入基本原理

1. 參考文獻&#xff1a; 趣解SQL注入原理 Sql注入基本原理 2.參考書籍

項目管理雜談-員工的積極性在哪里?

項目開發過程中&#xff0c;每每有人感嘆&#xff0c;曾幾何時&#xff0c;隊伍如何好帶&#xff0c;如何好用&#xff0c;而如今&#xff0c;人心繁雜&#xff0c;隊伍不好帶了。很多人的想法是“人望高處走”&#xff0c;不停的尋找待遇及其他方面更好的單位。其實&#xff0…

centos7硬盤分區

首先在虛擬機的設置中為系統添加硬盤 使用fdisk -l /dev/sdb 查看未分區的硬盤 fdisk -l /dev/sda 這是已經分區好得 接下來我們就要對sdb進行分區: 首先使用fdisk /dev/sdb 接著輸入m可以看到詳細命令 進行添加分區 已經建立好4個主分區&#xff0c;在建立時會看到以下 刪除…

java上傳rar文件_java實現上傳zip/rar壓縮文件,自動解壓

在pom中添加解壓jar依賴4.0.0org.springframework.bootspring-boot-starter-parent2.1.2.RELEASEcom.hfuncompress0.0.1-SNAPSHOTuncompress上傳壓縮文件(rar或者zip格式),解壓1.8org.springframework.bootspring-boot-starter-weborg.projectlomboklomboktrueorg.springframew…

從MapReduce的執行來看如何優化MaxCompute(原ODPS) SQL

摘要&#xff1a; SQL基礎有這些操作&#xff08;按照執行順序來排列&#xff09;&#xff1a; from join(left join, right join, inner join, outer join ,semi join) where group by select sum distinct count order by 如果我們能理解mapreduce是怎么實現這些SQL中的基本操…

套接字(socket)基本知識與工作原理

套接字&#xff08;socket&#xff09;基本知識與工作原理 一、Socket相關概念 Socket通常也稱作“套接字”&#xff0c;用于描述IP地址和端口&#xff0c;是一個通信鏈的句柄。&#xff08;其實就是兩個程序通信用的。&#xff09; SOCKET用于在兩個基于TCP/IP協議的應用程序之…

python 多線程--重點知識

1.全局變量global的用法 2.多線程共享全局變量-args參數 注意args參數類型為元組&#xff0c;逗號不能少&#xff01;

Flask WTForm表單的使用

運行環境&#xff1a; python2.7 flask 0.11 flask-wtf 0.14.2 wtform能夠通過一個類定義一些字段&#xff0c;這些字段會在前端生成標簽&#xff0c;并且通過設置字段的驗證規則&#xff0c;自動判斷前端輸入數據的格式。 一般用于用戶登錄&#xff0c;用戶注冊等信息錄入。…

Java與C#個人之比較

網上這方面的比較文章已經有不少了&#xff0c;不過大都是要么從很高的角度說的&#xff0c;要么就是從底層說的&#xff0c;本人就以自己這幾年的編程經歷中的感受&#xff0c;來談談自己的體會。 相似性&#xff1a; Java和C#都是一門面向對象的語言&#xff0c;Java更多地…

java利用子類求正方形_Java程序設計實驗2011

(2)掌握對象的聲明和使用&#xff1b;(3)掌握構造方法的概念和使用&#xff1b;(4)掌握類及成員的訪問控制符。2、實驗任務(1)閱讀下面的程序&#xff0c;在main()方法里添加語句完成如下的功能&#xff1a;①創建一個MyV alue類的對象myV alue。②為myV alue對象中的value域賦…

當導用模塊與包的import與from的問題(模塊與包的調用)

當在views.py里寫impor models會不會報錯呢&#xff1f; 1、Python里面的py文件都是每一行的代碼。2、Python解釋器去找一個模塊的時候&#xff0c;只去sys.path的路徑里找3、django項目啟動&#xff08;django項目的啟動文件是manage.py&#xff09;啟動項目是將manage.py的路…

ack和seq

ACK (Acknowledgement&#xff09;&#xff0c;即確認字符&#xff0c;在數據通信中&#xff0c;接收站發給發送站的一種傳輸類控制字符。表示發來的數據已確認接收無誤。 seq是序列號&#xff0c;這是為了連接以后傳送數據用的&#xff0c;ack是對收到的數據包的確認&#xff…

MySQL中的information_schema

0.引言 近日在學習網絡安全的sql注入時&#xff0c;用到mysql中的information_schema數據庫&#xff0c;其思路是利用information_schema中的SCHEMA獲取數據庫中的table名稱。現在對相關數據庫進行總結&#xff0c;方便以后復習使用。 2.information_schema數據庫 informati…