html调取随机数字图片,05-图片随机数与访问(views)
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render, redirect
from PIL import Image,ImageDraw,ImageFont
import io
import random
# Create your views here.
from meituan.models import User
def verifycode(request):
# 图片基本设置
# RGB: 0~255
bgcolor = (random.randint(10, 200), random.randint(10,200), random.randint(10,200))
# bgcolor = (120,120,120)
width = 100
height = 50
# 创建图片
image = Image.new('RGB', (width, height), bgcolor)
# 画笔对象
draw = ImageDraw.Draw(image)
# 添加噪点
for i in range(0,1000):
# 坐标
xy = (random.randint(0,width), random.randint(0,height))
# 颜色
fill = (random.randint(0,255), 255, random.randint(0,255))
draw.point(xy, fill=fill)
# 添加验证码
str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'
# 产生随机数
rand_str = ''
for i in range(0,4):
rand_str += str[random.randint(0, len(str)-1)]
print(rand_str)
# 保存验证码
# 指定字体类型
font = ImageFont.truetype('static/fonts/Songti.ttc', 35)
# 字体颜色
font_color1 = (random.randint(0,255),random.randint(0,255),random.randint(0,255))
font_color2 = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
font_color3 = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
font_color4 = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
# 绘制字体
draw.text((5, 2), rand_str[0], font=font, fill=font_color1)
draw.text((25, 2), rand_str[1], font=font, fill=font_color2)
draw.text((45, 2), rand_str[2], font=font, fill=font_color3)
draw.text((65, 2), rand_str[3], font=font, fill=font_color4)
# 释放画笔
del draw
# 文件操作
buff = io.BytesIO()
image.save(buff, 'png')
return HttpResponse(buff.getvalue(), 'image/png')
def args01(request, a):
return HttpResponse('传递的参数: ' + a)
def args02(request, a, b):
return HttpResponse('传递的参数a={}, b={}'.format(a, b))
def test01(request):
grade = Grade()
return None
# 系统自动创建的
# 服务器接受到请求后,会自动根据报文创建HttpRequest对象
# GET请求: 请求参数放置在url后面,以?分割,参数与参数之间以&分割
# 例如: http://127.0.0.1:8000/meituan/?name=zhangsan&age=20&score=90
# https :// cn.bing.com /search ? q=django & pc=MOZI & form=MOZLBR
def testrequest(request):
# 请求完整路径
print(request.path)
# 请求方法 (HTTP方法)
print(request.method)
# GET请求参数 [类字典]
print(request.GET)
# POST请求参数 [类字段]
print( request.POST )
# 文件参数
print(request.FILES)
# cookie
print(request.COOKIES)
# session
print(request.session)
# 响应对象
return HttpResponse('请求对象request')
def testget(request):
# 获取客户端传递给服务器数据
# 如果参数不存在,返回Nono
username = request.GET.get('haha')
# 不建议使用方括号的形式获取数据,参数如果不存在,会异常
# score = request.GET['score']
# score = request.GET.get('score')
# get方法: 获取一个
# getlist方法: 获取多个
score = request.GET.getlist('score')
print(username)
print(score)
return render(request, 'testget.html')
def testpost(request):
username = request.POST.get('username')
print(username)
return render(request ,'testpost.html')
# HttpResonse对象: 返回数据给客户端
# 自己创建
def testresponse(request):
# 直接返回
response = HttpResponse('hello')
# 带模板
# response = render(request, 'response.html')
# content 返回内容
# status 状态码
# 2xx 成功类
# 3xx 重定向
# 4xx 客户端错误
# 5xx 服务器错误
# response = HttpResponse('hello', status=404)
# 重定向
# response = redirect('/meituan/verifycode/')
# 设置 set_cookie(key,value)
response.set_cookie('name', 'atom')
return response
def testjson(request):
stu = {
'name':'张三',
'age':18,
'score':90
}
# 获取 get_cookie(key)
name = request.COOKIES.get('name')
print(name)
response = JsonResponse(stu)
return response
# 首页
def index(request):
# 获取cookie
username = request.COOKIES.get('username')
return render(request, 'index.html', context={'username':username})
# 注册
def register(request):
if request.method == 'POST': # 注册操作
# 获取客户端传递的数据
username = request.POST.get('username')
password = request.POST.get('password')
tel = request.POST.get('tel')
# 保存到数据库
user = User()
user.u_name = username
user.u_password = password
user.u_tel = tel
user.save()
# 注册成功,直接重定向 首页
response = redirect('/meituan/')
# 设置cookie
response.set_cookie('username', user.u_name)
# return HttpResponse('{}注册成功!'.format(username))
return response
elif request.method == 'GET': # 获取注册页面
return render(request, 'register.html')
# 登录
def login(request):
if request.method == 'POST': # 登录操作
username = request.POST.get('username')
password = request.POST.get('password')
# 根据用户名和密码 去数据库中找
# 能找到,登录成功
# 找不到,登录失败
users = User.objects.filter(u_name=username,u_password=password)
if users.exists(): # 存在
user = users.first()
# 登录成功,直接重定向 首页
response = redirect('/meituan/')
# 设置cookie
response.set_cookie('username', user.u_name)
# return HttpResponse('{}登录成功'.format(user.u_name))
return response
else: # 不存在
return HttpResponse('用户名或密码错误!')
elif request.method == 'GET': # 获取登录页面
return render(request, 'login.html')
# 退出登录
def logout(request):
# 删除cookie
response = redirect('/meituan/')
response.delete_cookie('username')
return response
def about(request):
# 获取cookie
username = request.COOKIES.get('username')
return render(request, 'about.html', context={'username':username})
html调取随机数字图片,05-图片随机数与访问(views)相关推荐
- java 生成随机数字_java如何产生随机数
一.java如何产生随机数? 1.打开eclipse 2.新建java项目,例如取名为"suijishu"点击完成 3.新建一个类进行测试 4.首先要在头部插入一个包 输入impo ...
- 随机数字图片验证码的原理、生成和破解
http://sxdt.h.baike.com/article-1307487.html 随机数字图片验证码的原理.生成和破解 2013-10-21 10:27:49 本文行家:jdsongss 随机 ...
- 用Python生成随机的中文验证码图片
大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...
- 生成数字相加验证码图片并验证
Java代码随机生成数字相加验证码图片并验证 package com.xz.common; import java.awt.Color; import java.awt.Font; ...
- 微信chooseImage,getLocalImgData调取相机拍照,获取图片base64
<a href="javascript:void(0)" onclick="use_wx_camera()">调取微信拍照</a> &l ...
- 纯6位数字验证码(图片)
<?php //中文字符集header('content-type:text/html;charset=utf-8'); //设置session,必须处于脚本最顶部session_start() ...
- java 字母随机数_java如何生成指定长度的随机数字和英文的字符串
最后贴一下完成的工具类代码 import java.util.Random; public class GeneId { /** * 随机生成包含大小写字母及数字的字符串 * @param lengt ...
- js随机飘动的广告图片代码demo效果示例(整理)
<!DOCTYPE html> <html><head><meta http-equiv="Content-Type" content=& ...
- python生成中文、字母、数字等字符图片
代码功能: 生成指定颜色.大小.字体的中文.字母.数字等字符图片 代码 from PIL import Image, ImageDraw, ImageFont import random# 设置背景颜 ...
最新文章
- 《LeetCode力扣练习》第12题 C语言版 (做出来就行,别问我效率。。。。)
- 多线程共用全局变量可能存在的威胁
- 如何跟随有三从零进阶中级CV算法工程师
- 当年张一鸣找我一起创业,我没去
- iOS之深入解析objc_msgSend消息转发机制的底层原理
- react 执行入口_如何使用React执行CRUD操作
- mac下workbench轻松搭建(drools 7.11.0.Final版本)
- 办公常用---破解在PDF中无法复制的功能
- 数字逻辑电路试题及答案
- 手机上PDF转换成JPG图片超简单的方法
- 【Pandas】常用姿势积累
- qt安装报错:下载“http://download.qt.io/online/xxxxx/_meta.7z“server replied: Bad Gateway出现网络错误
- FISCO-BCOS学习——区块链浏览器搭建
- 如何刷一些网站的阅读量
- 人工智能对学计算机的影响,计算机专业大学生对人工智能对人类的影响分析.docx...
- AttributeError: 'NoneType' object has no attribute 'sc' 解决方法!
- 微信小程序--获取二维码(java后端)
- C语言 输入一个字符,并判断这个字符属于哪一类字符
- 量子计算机可以发明时光机,俄科学家发明全球第一台时光机,可让微小粒子向过去移动1秒钟...
- notepad++安装包
热门文章
- Android kotlin 用三个RecyclerView(androidx+BRVAH3.0.6+AnyLayer)+自定义ViewPager实现从顶部弹出三级菜单列表(左右滑动)对话框功能
- IP地址冲突查找办法
- 用口诀背单词 - 7
- spring boot-302重定向
- 鸢尾花数据集聚类分析
- C语言中#undef的用法
- 身份证号尾数计算器 – 附在线版链接
- PHP面试题型汇总【一】(附答案)
- 兆骑科创创新创业高层次人才引进,以赛引才,线上直播路演
- 业内指路共享软件:更多机会在移动和海外市场(一)