自己动手,打造更好用的Django

Django是python实现的重量级的web框架,特点是,写的少,做的多,架构合理,容易维护,django为我们提供了大量的实用功能,但函数的名字不太好记,为了让django更好用,我们可以按照自己的使用习惯,对Django基础功能函数进行二次封装,打造更好用的django

Django_wrappers

get请求post请求 进行封装

# 对post请求进行封装
def post(request, key):
    return request.POST.get(key, '').strip()


# 对get请求进行封装
def get(request, key):
    return request.GET.get(key, '').strip()

cookie方法进行封装

# 设置cookie(24小时)
def set_cookie(response, key, value):
    response.set_cookie(key, value, max_age=60*60*24)


# 获取cookie
def get_cookie(request, key):
    return request.COOKIES.get(key, '')


# 删除cookie
def del_cookie(response, key):
    response.delete_cookie(key)

session进行封装

# 设置session
def set_session(request, key, value):
    request.session[key] = value


# 获取session
def get_session(request, key):
    return request.session.get(key, '')


# 删除session(清除所有的session)
def del_session(request):
    request.session.flush()

sha256加密算法进行封装

# 引入哈希库
import hashlib

# 用户密码加密(使用sha256进行加密)
def password_encryption(password, salt='zhaozhao'):

    sha = hashlib.sha256()
    new_password = password + salt
    sha.update(new_password.encode('utf-8'))

    return sha.hexdigest()

对中间件message方法进行封装

# 引入message(依赖django默认的中间件)
from django.contrib import messages

# 为message添加单条消息
def add_message(request, key, value):
    messages.add_message(request, messages.INFO, key + ":" + value)


# 获取所有message信息
def get_messages(request):
    # 取出所有错误信息
    all_mess = messages.get_messages(request)
    # 保存错误信息到字典中
    mess_dic = dict()
    for mess in all_mess:
        content = str(mess).split(':')
        mess_dic[content[0]] = mess_dic[1]

    return mess_dic

文章涉及到的资源我会通过百度网盘分享,为便于管理,资源整合到一张独立的帖子,链接如下: http://www.jianshu.com/p/4f28e1ae08b1

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏禁心尽力

简单聊聊不可或缺的Nginx反向代理服务器--实现负载均衡【上篇】

       今天又是新的一周,我养足了精神去对待新一周的工作,但是今天到公司发现还是有一点空闲时间的,所以就想与之前接触过的Nginx再交往得更深一点儿。 什...

23060
来自专栏Ryan Miao

maven基础知识

1.maven基础知识                                                                     ...

27860
来自专栏JavaQ

浅谈分布式Session管理

随着Web应用系统架构的不断升级,对Session管理的需求也变得越来越高。本篇将详细总结分布式部署环境下的Session管理。 为什么要使用分布式Sessio...

38970
来自专栏IT笔记

Consul+Prometheus系统监控之注册发现

缘起 前面几篇文章分别对系统服务、MySql以及Redis相关软件做了监控预警,但是大家有没有发现,在prometheus.yml里配置需要监听的服务时,我们需...

3.1K60
来自专栏idba

主从替换之后的复制风暴

一套MySQL主-备-备-备数据库,其中的备库升级到主库之后,系统监控报警 Seconds_Behind_Master 瞬间为0,瞬间为数十万秒。第一感觉是遇...

20620
来自专栏懒人开发

ZooKeeper入门

我们知道,著名的hadoop,kafka,dubbo 都是基于zookeeper而构建。

39220
来自专栏JetpropelledSnake

Python Web学习笔记之Python多线程和多进程、协程入门

进程和线程究竟是什么?如何使用进程和线程?什么场景下需要使用进程和线程?协程又是什么?协程和线程的关系和区别有哪些? 程序切换-CPU时间的分配 首先,我们的任...

40450
来自专栏数据和云

运维经验:回滚段异常的特殊救急方法

? 冷菠 冷菠,资深DBA,著有《Oracle高性能自动化运维》,有近10年的数据库运维、团队管理以及培训经验。擅长数据库备份恢复、数据库性能诊断优化以及数据...

46090
来自专栏bboysoul

编译安装squid

什么是squid,简单的说squid是一款代理缓存软件就是加速网站访问的,国内部分cdn服务用的就是squid,cdn大家应该清楚吧,内容分发网络,cdn的作用...

16930
来自专栏smy

webapp开发调试环境--weinre配置

    用谷歌调试工具中的手机模拟器模拟手机进行webapp的开发,与真机上的效果还是有些偏差,opera手机模拟器的效果亦不佳。有时在pc上开发出来的web...

453110

扫码关注云+社区

领取腾讯云代金券