首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Django框架练习之云笔记项目

后端 35KB 22 需要积分: 1
立即下载

资源介绍:

Django框架练习之云笔记项目
from django.http import HttpResponse,HttpResponseRedirect from django.shortcuts import render from .models import User import hashlib # Create your views here. def reg_view(request): #注册 if request.method == 'GET': # GET 返回页面 return render(request,'user/register.html') elif request.method == 'POST': username = request.POST['username'] pass1 = request.POST['password_1'] pass2 = request.POST['password_2'] # POST 处理提交数据 # 1. 密码一致 if pass1 != pass2: return HttpResponse('两次输入密码不一致!!!') # 哈希算法 - 给定明文 计算出一段定长的 不可逆的值 md5 sha-256 # 特点 # 1. 定长输出 : 不管明文输入长度多少 哈希值定长 md5 - 32位 16进制 【解释密码设置32】 # 2. 不可逆 :无法反向计算出 对应 的 明文 # 3. 雪崩效应 输入改变 输出改变 # 场景 : 1.密码处理 2.文件的完整性校验 # 如何使用 方法调用 m = hashlib.md5() m.update(pass1.encode()) # encode()变成字节串 pass1_hash = m.hexdigest() # 生成哈希值 # 2.当前用户名是否可用 检查是否注册 old_user = User.objects.filter(username=username) if old_user: return HttpResponse('用户名已注册!!!') # 插入数据 【明文处理】 try : user = User.objects.create(username=username,password=pass1_hash) except Exception as e: # 由于唯一索引 报错 重复插入 【唯一索引注意并发写入问题】 print('--create user error %s' % (e)) return HttpResponse('用户名已注册') return HttpResponse('注册成功!') # 优化建议 : 密码问题 创建语句问题 # 请求量大 User.objects.create 会报错 在username该字段 因为是唯一字段 可能由于并发注册问题 发生重复写入问题 # 免登录一天 session 用户名 主键 存入 session request.session['username'] = username request.session['uid'] = user.id # TODO 修改session存储时间为1天 settings.py # return HttpResponse('注册成功') return HttpResponseRedirect('/index') def login_view(request): if request.method == 'GET': # 获取登录页面 # 检查登录状态 登陆过 显示已登录 # 先检查session if request.session.get('username') and request.session.get('uid'): # return HttpResponse('已登录') return HttpResponseRedirect('/index') # 检查cookie c_username = request.COOKIES.get('username') c_uid = request.COOKIES.get('uid') if c_username and c_uid: # 回写到session中 request.session['username'] = c_username request.session['uid'] = c_uid # return HttpResponse('已登录') return HttpResponseRedirect('/index') # GET 返回页面 return render(request,'user/login.html') elif request.method == 'POST': # 获得数据 username = request.POST['username'] password = request.POST['password'] # 查询 是否有此人 # username 是唯一索引 try: user = User.objects.get(username=username) # 找不到 肯定没有 except Exception as e: print('--login user error %s' % (e)) return HttpResponse('用户名或者密码错误!!!') # 比对密码 因为哈希不可逆 所以从新生成哈希 用哈希数值进行比对 m = hashlib.md5() m.update(password.encode()) if m.hexdigest() != user.password: return HttpResponse('用户名或密码错误') # 记录会话状态 # 免登录一天 session 用户名 主键 存入 session request.session['username'] = username request.session['uid'] = user.id # 判断有没有✔ 通过检查浏览器响应分析 checkbox的状态 remember=on # #点选了->Cookies存储username,uid时间3天 # resp = HttpResponse('--------success---------') resp = HttpResponseRedirect('/index') # print('request.POST:',request.POST) # request.POST: if 'remember' in request.POST: resp.set_cookie('username', username, 3600 * 24 * 3) resp.set_cookie('uid', user.id, 3600 * 24 * 3) return resp # 退出 def logout_view(request): # 删除session if 'username' in request.session: del request.session['username'] if 'uid' in request.session: del request.session['uid'] # 检查cookie 删除cookie需要一个响应对象 resp = HttpResponseRedirect('/index') if 'username' in request.COOKIES: resp.delete_cookie('username') if 'uid' in request.session: resp.delete_cookie('uid') return resp

资源文件列表:

tedu_note.zip 大约有91个文件
  1. .idea/
  2. .idea/.gitignore 50B
  3. .idea/inspectionProfiles/
  4. .idea/inspectionProfiles/profiles_settings.xml 174B
  5. .idea/misc.xml 392B
  6. .idea/modules.xml 277B
  7. .idea/tedu_note.iml 485B
  8. .idea/workspace.xml 2.38KB
  9. index/
  10. index/__init__.py
  11. index/__pycache__/
  12. index/__pycache__/__init__.cpython-36.pyc 127B
  13. index/__pycache__/admin.cpython-36.pyc 168B
  14. index/__pycache__/apps.cpython-36.pyc 398B
  15. index/__pycache__/models.cpython-36.pyc 165B
  16. index/__pycache__/views.cpython-36.pyc 304B
  17. index/admin.py 66B
  18. index/apps.py 148B
  19. index/migrations/
  20. index/migrations/__init__.py
  21. index/migrations/__pycache__/
  22. index/migrations/__pycache__/__init__.cpython-36.pyc 138B
  23. index/models.py 60B
  24. index/templates/
  25. index/templates/index/
  26. index/templates/index/index.html 815B
  27. index/tests.py 63B
  28. index/urls.py
  29. index/views.py 139B
  30. manage.py 687B
  31. note/
  32. note/__init__.py
  33. note/__pycache__/
  34. note/__pycache__/__init__.cpython-36.pyc 126B
  35. note/__pycache__/admin.cpython-36.pyc 167B
  36. note/__pycache__/apps.cpython-36.pyc 395B
  37. note/__pycache__/models.cpython-36.pyc 673B
  38. note/__pycache__/urls.cpython-36.pyc 269B
  39. note/__pycache__/views.cpython-36.pyc 1.33KB
  40. note/admin.py 66B
  41. note/apps.py 146B
  42. note/migrations/
  43. note/migrations/0001_initial.py 983B
  44. note/migrations/__init__.py
  45. note/migrations/__pycache__/
  46. note/migrations/__pycache__/0001_initial.cpython-36.pyc 1017B
  47. note/migrations/__pycache__/__init__.cpython-36.pyc 137B
  48. note/models.py 415B
  49. note/templates/
  50. note/templates/note/
  51. note/templates/note/add_note.html 386B
  52. note/templates/note/list_note.html 1.05KB
  53. note/tests.py 63B
  54. note/urls.py 142B
  55. note/views.py 1.7KB
  56. tedu_note/
  57. tedu_note/__init__.py
  58. tedu_note/__pycache__/
  59. tedu_note/__pycache__/__init__.cpython-36.pyc 131B
  60. tedu_note/__pycache__/settings.cpython-36.pyc 2.35KB
  61. tedu_note/__pycache__/urls.cpython-36.pyc 1.04KB
  62. tedu_note/__pycache__/wsgi.cpython-36.pyc 538B
  63. tedu_note/asgi.py 411B
  64. tedu_note/settings.py 3.71KB
  65. tedu_note/urls.py 945B
  66. tedu_note/wsgi.py 411B
  67. user/
  68. user/__init__.py
  69. user/__pycache__/
  70. user/__pycache__/__init__.cpython-36.pyc 126B
  71. user/__pycache__/admin.cpython-36.pyc 167B
  72. user/__pycache__/apps.cpython-36.pyc 395B
  73. user/__pycache__/models.cpython-36.pyc 737B
  74. user/__pycache__/urls.cpython-36.pyc 323B
  75. user/__pycache__/views.cpython-36.pyc 2.14KB
  76. user/admin.py 66B
  77. user/apps.py 146B
  78. user/migrations/
  79. user/migrations/0001_initial.py 841B
  80. user/migrations/__init__.py
  81. user/migrations/__pycache__/
  82. user/migrations/__pycache__/0001_initial.cpython-36.pyc 862B
  83. user/migrations/__pycache__/__init__.cpython-36.pyc 137B
  84. user/models.py 599B
  85. user/templates/
  86. user/templates/user/
  87. user/templates/user/login.html 497B
  88. user/templates/user/register.html 493B
  89. user/tests.py 63B
  90. user/urls.py 191B
  91. user/views.py 5.14KB
0评论
提交 加载更多评论
其他资源 Processing实验4之灯笼
思路说明:想画一个中国传统文化灯笼,画完之后,添加4个svg图片,用键盘上1、2、3、4这些数字来控制图片数量,转动鼠标会形成一个个圆。按下鼠标会出现图形,图形和图片不会覆盖住灯笼,按下Backspace或者Delete键盘会清空所画的图形,图片数量不会清空而是恢复到只剩下一个图片。灯笼不会受其他影响,除非改变相应的变量。按下S或者s可以保存png图片,按下E或者e可以保存jpg。
日本最大的网站z.zip
日本最大的网站z.zip
qpdf-qpdf-qpdf
qpdf--------
qpdf-qpdf-qpdf
Graphrag结构图
Graphrag结构图
yolov5-7.0源码,附yolov5s分割模型权重
yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。 yolov5-7.0源码,附yolov5s分割模型权重。
yolov5-7.0源码,附yolov5s分割模型权重 yolov5-7.0源码,附yolov5s分割模型权重 yolov5-7.0源码,附yolov5s分割模型权重
强制关闭Chrome谷歌浏览器自动更新脚本
懒人版
Processing实验2
在实验1的基础上添加了一些东西,比如文字和图像。它们以不同的方式被呈现出来,感兴趣的可以下载玩玩,可以将文字、图片等改成自己喜欢的东西。
CHS视频恢复程序AVI版
CHS_AVI视频恢复程序,支持常见编码封装的AVI文件的恢复和修复,主要功能如下: 1、支持对大容量硬盘(4T以上)的扫描。 2、支持微软主流NTFS、FAT32、EXTFAT文件系统及物理硬盘RAW扫描。 3、支持导入样本文件以进行精确定位。 3、支持AVI外部文件头的引用,对于文件头缺失的AVI文件可以做到自动修复。 5、可以对存储介质任意创建区域进行扫描。 6、支持查看存储介质的HEX值。 7、扫描结果的保存和加载全部自动化。 8、支持损坏AVI文件的修复。