python 全栈开发,Day118(django事务,闭包,客户管理,教学管理,权限应用)

本文主要是介绍python 全栈开发,Day118(django事务,闭包,客户管理,教学管理,权限应用),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python 全栈开发,Day118(django事务,闭包,客户管理,教学管理,权限应用)

昨日内容回顾

 

一、django事务

什么是事务

一系列将要发生或正在发生的连续操作。

作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。

MySQL事务

  • 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
  • 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
  • 事务用来管理 insert,update,delete 语句

 

事务处理

用 BEGIN, ROLLBACK, COMMIT来实现

  • BEGIN 开始一个事务
  • ROLLBACK 事务回滚
  • COMMIT 事务确认

 

举例:

比如购买商品,在页面上,会有商品的数量

 

django事务

Django 1.4 事务默认模式是autocommit模式,每个查询都相当于一个事务,每次查询都直接提交commit事务,除非事务被禁止


在view里面的使用:

装饰器

@transaction.commit_on_success
def view():a.save()b.save()return ...

 

with用法

def func()with transaction.commit_on_success():a.save()b.save()return ...

 

二、闭包应用

什么是闭包

先来理解一下,如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。再来看定义

 

闭包: 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

 

更多详情,请参考链接:

https://www.cnblogs.com/Lin-Yi/p/7305364.html

 

三、客户管理

四、教学管理

五、权限应用

 

由于时间关系,详细的步骤略...

 

总结:

第一部分:权限管理第二部分:stark组件第三部分:crm业务
1. crm系统主要用于做什么?客户关系管理。2. 主要给谁用?- 销售- 客户分类,销售底薪+业绩- 公户:申请(锁)- 行锁:innodb -> 行锁+表锁+事务- 表锁:Mysiam -> 表锁- 私户:150人+自己客户- 全户- 客户跟进- 缴费申请- 推广- 在公户中录入有效数据- 渠道- 在公户中录入有效数据- 教学,老师- 上课 - 作业- 成绩- 教质- 考勤- 问卷- 学生- 交作业- 查成绩- 查看个人信息- 问卷3. 技术点- Form的作用?- 对用户提交的一组表单数据进行校验。- ModelForm的作用?- 对用户提交的一组表单数据进行校验。- 快速实现增加、修改- FormSet的作用?- 对用户提交的多组表单数据进行校验。- ModelFormSet的作用?- 对用户提交的多组表单数据进行校验。- 快速实现增加、修改第四部分:权限的应用a. 录入权限信息http://127.0.0.1:8000/rbac/menu/list/http://127.0.0.1:8000/rbac/multi/permissions/?type=updateb. 分配权限创建角色:http://127.0.0.1:8000/rbac/role/list/权限分配:http://127.0.0.1:8000/rbac/distribute/permissions/c. 权限验证+自动生成菜单# 权限信息初始化
            init_permission(user_obj,request) MENU_SESSION_KEY = "u8fkksjdfkjsf"PERMISSION_SESSION_KEY = "u8fkksjdfkjsf"# 中间件请求进行权限校验'rbac.middleware.rbac.RbacMiddleware'PERMISSION_VALID_URL = ['/login/','/admin/.*',]# inclusion_tag{% load rbac %}{% menu request %}{% breadcrumb request %}# 引入css和js<link rel="stylesheet" href="{% static 'rbac/css/rbac.css' %} "/><script src="{% static 'rbac/js/rbac.js' %} "></script>d. 按钮的控制from django.conf import settingsfrom stark.service.stark import StarkConfigclass RbacPermission(object):def get_add_btn(self):name = "%s:%s" %(self.site.namespace,self.get_add_url_name,)permission_dict = self.request.session.get(settings.PERMISSION_SESSION_KEY)if name in permission_dict:return super().get_add_btn()def get_list_display(self):val = super().get_list_display()permission_dict = self.request.session.get(settings.PERMISSION_SESSION_KEY)edit_name = "%s:%s" %(self.site.namespace,self.get_change_url_name,)del_name = "%s:%s" %(self.site.namespace,self.get_del_url_name,)if edit_name not in permission_dict:val.remove(StarkConfig.display_edit)if del_name not in permission_dict:val.remove(StarkConfig.display_del)return val每个配置去继承即可。CRM结束:1. 课程100% = 3年2. 学习阶段初级阶段:增删改查 + Linux阶段升级:做项目增加熟练度 + 开发组件 + Linux阶段升级:看源码(Flask+Django) + Linux阶段升级:架构(Linux硬件+代码(设计模式+领域驱动模型)) + Linux合伙人搞创业3. 如何让简历漂亮a. 项目+技术点b. 热点 c. 自学能力 源码 4. 设计+讲话能力
View Code

 

完整代码,请参考:

第一阶段(不包含权限应用)

链接:https://pan.baidu.com/s/11XFG6QZ_W5wCEt0HzdqPkA 密码:g9ye

终极版:

链接:https://pan.baidu.com/s/14Y5ioQkEuJBvoL1pCXsqmg 密码:gz6p

 

未完待续...

 

posted @ 2018-09-04 19:46 肖祥 阅读( ...) 评论( ...) 编辑 收藏

这篇关于python 全栈开发,Day118(django事务,闭包,客户管理,教学管理,权限应用)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/490433

相关文章

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring 中的切面与事务结合使用完整示例

《Spring中的切面与事务结合使用完整示例》本文给大家介绍Spring中的切面与事务结合使用完整示例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录 一、前置知识:Spring AOP 与 事务的关系 事务本质上就是一个“切面”二、核心组件三、完