当前位置: 首页 > news >正文

【Django】云笔记项目

一、介绍

  • 用户可在系统中记录自己的笔记,用户的数据被存储在云笔记平台;
  • 用户和用户之间的数据为隔离存储(登陆后才能使用相关笔记功能,且只能查阅自己的笔记)
    在这里插入图片描述

二、功能拆解

1、用户模块

  1. 注册:成为平台用户
  2. 登录:校验用户身份
  3. 退出登录:推出登录状态

2、笔记模块

  1. 查看笔记列表 -查
  2. 创建新笔记 -增
  3. 修改笔记 -改
  4. 删除笔记 -删

3、功能需求

(一)注册、登录、首页

(1)用户注册

在这里插入图片描述
在这里插入图片描述

(2)注册优化

在这里插入图片描述

# 哈希算法 - 给定明文,计算出一段定长的、不可逆的值 md5、sha-256
# 1、定长输出:不管明文输入长度为多少,哈希值都是定长的。md5-32位16进制
# 2、不可逆:无法反向计算出对应的明文
# 3、雪崩效应:输入改变,输出必然变
# 场景:1、密码处理 2、文件完整性校验
m = md5()
m.update(b'123456')
result = m.hexdigest()

(3)用户登录

在这里插入图片描述

(4)会话状态时间拉长

无论有没有勾选“记住用户名”选项,都要保存session,但若勾选了此选项,就多保存一份cookie。即Session存短期、Cookie存长期。
在这里插入图片描述

    if request.method == 'GET':# 检查登录状态,如果登录了,显示已登录if request.session.get('username') and request.session.get('uid'):return HttpResponse('已登录')# 检查Cookiesc_username = request.COOKIE.get('username')c_uid = request.COOKIE.get('uid')if c_username and c_uid:# 回写sessionrequest.session['username'] = c_usernamerequest.session['uid'] = c_uidreturn HttpResponse('已登录')return render(request,'user/login.html')

(5)首页

在这里插入图片描述

    {% if request.session.username %}欢迎 {{ request.session.username }}<a href="">退出登录</a><a href="">进入笔记</a>{% else %}{% if request.COOKIES.username %}欢迎 {{ request.COOKIES.username }}<a href="">退出登录</a><a href="">进入笔记</a>{% else %}<a href="/user/login">登录</a><a href="/user/reg">注册</a>{% endif %}{% endif %}

(6)退出登录

在这里插入图片描述

(二)笔记

(1)检验登陆状态-装饰器

def check_login(fn): # fn即视图函数def wrap(request,*args,**kwrags): # 参数是视图函数的参数if 'username' not in request.session or 'uid' not in request.session:# 检查cookiec_username = request.COOKIES.get('username')c_uid = request.COOKIES.get('uid')if c_username and c_uid:request.session['username'] = c_usernamerequest.session['uid'] = c_uidelse:return HttpResponseRedirect('/user/login')return fn(request,*args,**kwrags)return wrap

后续的增删改查操作均需校验登录状态

(2)列表页

在这里插入图片描述

(3)添加笔记页

在这里插入图片描述

(4)修改笔记页

在这里插入图片描述

(5)删除笔记

在这里插入图片描述

三、流程

  1. 创建项目django-admin startproject tedu_note
  2. 配置常规项:语言、时区、禁用csrf、数据库配置
  3. 创建注册应用user和index、用户user模型类设计
  4. 完成登录、注册、首页的功能设计,详见二(一)
  5. 创建注册应用note、笔记Note模型类设计
  6. 完成笔记相关的功能设计,详见二(二)
http://www.lryc.cn/news/658.html

相关文章:

  • LeetCode——1797. 设计一个验证系统
  • java Resource
  • ArkTS语法(声明式UI)
  • 自动化测试实战篇(7)jmeter连接mysql数据库,实现单表、多表、三表查询,并对表中数据进行修改,删除,新增操作
  • 我的网站上线了!
  • 勒索病毒整体攻击态势简单分析
  • Vue资源(组件库、实用插件)
  • java rpc框架 中的自定义异常类型的全局处理
  • 面试题:Redis的内存策略
  • idea中使用Git
  • C++派生类指针赋值给基类指针问题(虚函数和非虚函数不同)
  • 数据库实践LAB大纲 04 触发器
  • Win10系统电脑开机后总是蓝屏无法使用怎么办?
  • Node——使用nvm切换node版本
  • go语言实现的一个基于go-zero框架的微服务影院票务系统cinema-ticket
  • ArcGIS API for JavaScript 4.15系列(3)——Dojo中的css样式操作
  • “赶快回家网”首页制作
  • JavaWEB-Servlet
  • springboot集成mqtt
  • Lecture3 梯度下降(Gradient Descent)
  • 深入了解DSP
  • Flink反压如何排查
  • windows无法访问指定设备路径或文件怎么办?2个解决方案
  • 冷知识|鹤顶红还能用来修长城?
  • 【GD32F427开发板试用】在IAR环境中移植RTX5
  • MySQl学习(从入门到精通15)
  • 前端构建工具 Vite
  • 若依框架---PageHelper分页(十)
  • 苹果手机专用蓝牙耳机有哪些?与iphone兼容性好的蓝牙耳机
  • CS-TPGS;壳聚糖修饰维生素E;Chitosan-g-TPGS