网站建设要多少钱,海尔建设此网站的目的是什么,网页设计素材代码包,网站海外推广谷歌seo方案一、介绍
用户可在系统中记录自己的笔记#xff0c;用户的数据被存储在云笔记平台#xff1b;用户和用户之间的数据为隔离存储#xff08;登陆后才能使用相关笔记功能#xff0c;且只能查阅自己的笔记#xff09;
二、功能拆解
1、用户模块
注册#xff1a;成为平台…一、介绍
用户可在系统中记录自己的笔记用户的数据被存储在云笔记平台用户和用户之间的数据为隔离存储登陆后才能使用相关笔记功能且只能查阅自己的笔记
二、功能拆解
1、用户模块
注册成为平台用户登录校验用户身份退出登录推出登录状态
2、笔记模块
查看笔记列表 -查创建新笔记 -增修改笔记 -改删除笔记 -删
3、功能需求
一注册、登录、首页
1用户注册 2注册优化 # 哈希算法 - 给定明文计算出一段定长的、不可逆的值 md5、sha-256
# 1、定长输出不管明文输入长度为多少哈希值都是定长的。md5-32位16进制
# 2、不可逆无法反向计算出对应的明文
# 3、雪崩效应输入改变输出必然变
# 场景1、密码处理 2、文件完整性校验
m md5()
m.update(b123456)
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退出登录/aa href进入笔记/a{% else %}{% if request.COOKIES.username %}欢迎 {{ request.COOKIES.username }}a href退出登录/aa href进入笔记/a{% else %}a href/user/login登录/aa 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删除笔记 三、流程
创建项目django-admin startproject tedu_note配置常规项语言、时区、禁用csrf、数据库配置创建注册应用user和index、用户user模型类设计完成登录、注册、首页的功能设计详见二一创建注册应用note、笔记Note模型类设计完成笔记相关的功能设计详见二二