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.mzph.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…