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)相关推荐

  1. java 生成随机数字_java如何产生随机数

    一.java如何产生随机数? 1.打开eclipse 2.新建java项目,例如取名为"suijishu"点击完成 3.新建一个类进行测试 4.首先要在头部插入一个包 输入impo ...

  2. 随机数字图片验证码的原理、生成和破解

    http://sxdt.h.baike.com/article-1307487.html 随机数字图片验证码的原理.生成和破解 2013-10-21 10:27:49 本文行家:jdsongss 随机 ...

  3. 用Python生成随机的中文验证码图片

    大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...

  4. 生成数字相加验证码图片并验证

    Java代码随机生成数字相加验证码图片并验证 package com.xz.common;      import java.awt.Color;   import java.awt.Font;   ...

  5. 微信chooseImage,getLocalImgData调取相机拍照,获取图片base64

    <a href="javascript:void(0)" onclick="use_wx_camera()">调取微信拍照</a> &l ...

  6. 纯6位数字验证码(图片)

    <?php //中文字符集header('content-type:text/html;charset=utf-8'); //设置session,必须处于脚本最顶部session_start() ...

  7. java 字母随机数_java如何生成指定长度的随机数字和英文的字符串

    最后贴一下完成的工具类代码 import java.util.Random; public class GeneId { /** * 随机生成包含大小写字母及数字的字符串 * @param lengt ...

  8. js随机飘动的广告图片代码demo效果示例(整理)

    <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" content=& ...

  9. python生成中文、字母、数字等字符图片

    代码功能: 生成指定颜色.大小.字体的中文.字母.数字等字符图片 代码 from PIL import Image, ImageDraw, ImageFont import random# 设置背景颜 ...

最新文章

  1. 《LeetCode力扣练习》第12题 C语言版 (做出来就行,别问我效率。。。。)
  2. 多线程共用全局变量可能存在的威胁
  3. 如何跟随有三从零进阶中级CV算法工程师
  4. 当年张一鸣找我一起创业,我没去
  5. iOS之深入解析objc_msgSend消息转发机制的底层原理
  6. react 执行入口_如何使用React执行CRUD操作
  7. mac下workbench轻松搭建(drools 7.11.0.Final版本)
  8. 办公常用---破解在PDF中无法复制的功能
  9. 数字逻辑电路试题及答案
  10. 手机上PDF转换成JPG图片超简单的方法
  11. 【Pandas】常用姿势积累
  12. qt安装报错:下载“http://download.qt.io/online/xxxxx/_meta.7z“server replied: Bad Gateway出现网络错误
  13. FISCO-BCOS学习——区块链浏览器搭建
  14. 如何刷一些网站的阅读量
  15. 人工智能对学计算机的影响,计算机专业大学生对人工智能对人类的影响分析.docx...
  16. AttributeError: 'NoneType' object has no attribute 'sc' 解决方法!
  17. 微信小程序--获取二维码(java后端)
  18. C语言 输入一个字符,并判断这个字符属于哪一类字符
  19. 量子计算机可以发明时光机,俄科学家发明全球第一台时光机,可让微小粒子向过去移动1秒钟...
  20. notepad++安装包

热门文章

  1. Android kotlin 用三个RecyclerView(androidx+BRVAH3.0.6+AnyLayer)+自定义ViewPager实现从顶部弹出三级菜单列表(左右滑动)对话框功能
  2. IP地址冲突查找办法
  3. 用口诀背单词 - 7
  4. spring boot-302重定向
  5. 鸢尾花数据集聚类分析
  6. C语言中#undef的用法
  7. 身份证号尾数计算器 – 附在线版链接
  8. PHP面试题型汇总【一】(附答案)
  9. 兆骑科创创新创业高层次人才引进,以赛引才,线上直播路演
  10. 业内指路共享软件:更多机会在移动和海外市场(一)