基于Django中间件引发的编程思想
文章目录
- 基于Django中间件引发的编程思想(==重点==)
- importlib模块使用
- 编程思想
基于Django中间件引发的编程思想(重点)
importlib模块使用
能够以字符串的形式导入模块,最小单位只能到模块名
# 1. 创建一个py文件 aaa.py
# 2. 创建一个mypach文件夹,里面创建一个bbb.py文件,写上name='zhao'然后再aaa.py中书写以下代码
import importlibres = 'mypack.bbb' # 最小单位只能到模块的名字,不能点模块里的变量名
ret = importlib.import_module(res) # from mypack import bbb
print(ret)# 结果如下
<module 'mypack.bbb' from 'E:\\Python\\python\\python进阶\\WEB开发\\day12\\mypack\\bbb.py'>
编程思想
1. 先创建一个notify文件夹,里面创建py文件,有几个功能,创建几个py文件
2. 因为一个文件夹,里面有一个个的py文件,就是一个包,所以要再notify文件夹里创建__init__.py文件
3. settings #配置文件
4. start.py #启动文件
email.py
class Email(object):def __init__(self):pass # 发送邮箱需要做的前期准备工作 接口什么的def send(self, content):print('Email通知:%s' % content)
qq.py
class Qq(object):def __init__(self):pass # 发送QQ需要做的前期准备工作def send(self, content):print('QQ通知:%s' % content)
wechat.py
class Wechat(object):def __init__(self):pass # 发送微信需要做的前期准备工作def send(self, content):print('微信通知:%s' % content)
settings.py
NOTIFY_LIST = [ 'notify.email.Email','notify.qq.Qq','notify.wechat.Wechat',
]
__init__.py
(编程思想的灵魂)
import settings
import importlibdef send_all(content):for path_str in settings.NOTIFY_LIST: # 'notify.email.Email',module_path, class_name = path_str.rsplit('.', maxsplit=1)# module_path='notify.email'# class_name='Email'# 1. 利用字符串导入模块module = importlib.import_module(module_path) # from motify import email# 2. 利用反射获取类名cls = getattr(module, class_name) # Email Qq Wechat# 3. 生成类的对象obj = cls()# 4. 利用鸭子类型直接调用send方法obj.send(content)
start.py
import notifynotify.send_all('国庆不放假')
基于Django中间件引发的编程思想相关推荐
- csrf跨站请求伪造,CBV添加装饰器,auth认证模块,基于django中间件设计项目功能
文章目录 csrf跨站请求伪造 csrf的定义 csrf的分类 csrf的攻击过程 csrf的攻击条件 举例说明 Django提供的解决策略 csrf相关装饰器 FBV CBV 方法一(直接在类中的某 ...
- 基于PHP聊天室的编程思想
基于PHP聊天室的编程思想 大门 -- 登陆 1 页面登陆的基本要素 你可以在我的主页看到登陆的表单,这里提供了最基本的登陆表单项 (1)登陆表单 <form method=POST name= ...
- php 聊天室 教程,基于PHP的聊天室编程思想-PHP教程,PHP基础
1 页面登陆的基本要素 你可以在我的竹叶看到登陆 的表单,这里提供了最基本的登陆表单项 (1)登陆表单 (a)聊天表单的名字为chatform,我使用action=enter作为进入聊天室的入口,如果 ...
- django view返回form error_Django(解决被钓鱼CSRF、Django中间件、反射)
今日内容概要 django中间件 全局用户身份校验 全局用户权限校验(补充) 全局访问频率校验 ... csrf跨站请求伪造 基于django中间件一个重要的编程思想(反射) https://www. ...
- 【Java】MapReduce编程的编程思想以及基于Hadoop的Wordcount的程序的实现
1.MapReduce编程的编程思想(比如该文件就只输入三行,如下面所示) hive spark hive hbase hadoop hive spark sqoop flume scala(0,&q ...
- 基于STM32F103移植华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机
华为LiteOS_任务挂起与恢复_面向对象编程思想之按键状态机 因为在做华为LiteOS任务挂起和恢复需要使用到按键去触发任务挂起和恢复动作,因为我就萌发出使用状态机这种架构做一个按键检测触发.回想已 ...
- Java编程思想日志
Thinking In Java的作者是大牛!做事要站在巨人的肩膀上有助于提高效率和开阔眼界!建议学习java的小伙伴儿有时间可以抽空了解一下,以下内容为读书笔记,比较杂乱,仅供参考,推荐阅读原著: ...
- Android知识架构 · Java的编程思想
1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些 ...
- Java编程思想翻译勘误
总的来说,Java编程思想是一本好书:但是因为译者可能不懂计算机,很多地方都有严重错误. 之前和朋友抱怨过,朋友提议抱怨无用不如干点实事.遂决定边看边将自己找到的翻译错误贴出来,希望能给别人一些帮助. ...
最新文章
- Mysql 内置函数
- 025_Tree树形控件
- UDP千兆以太网FPGA_verilog实现(四、代码前期准备-UDP和IP协议构建)
- Redis 单机模式,主从模式,哨兵模式(sentinel),集群模式(cluster),第三方模式优缺点分析
- JAVA调用HTTP接口
- 在线电脑配置PHP源码,域名授权系统PHP源码 V2.7.0 支持盗版追踪
- ROS-SLAM仿真-hector
- tcp 四次挥手_TCP三次握手和四次挥手通俗理解
- BetaMeow----利用机器学习做五子棋AI
- 悉尼mit it硕士选课 INFO5990
- 呆萝卜与每日优鲜竞品分析
- jvm 面试之参数实战
- 亚声速 – 超声速等熵喷管流动 数值模拟(文字)
- 嵌入式Linux(十三)RTC实时时钟
- 【译】什么才是优秀的代码
- logTracker错误日志跟踪组件(二)
- 人机交互-1-人机交互概述
- WordArt与everything联用生成含中文的词云
- C语言实现双向非循环链表(不带头结点)的基本操作
- iOS——自定义cell
热门文章
- 如何实现python对抖音视频取消点赞?
- TinyMCE 富文本编辑器 ━━ 一键排版功能所需正则表达式整理及学习
- CDR插件开发之CPG插件017 - 在VS2019中实现CPG插件调试(自动写入CPG、自动启动CDR)
- 想看开发者与技术大咖现场battle?百度AI快车道线下启动
- 城市拥堵加剧,都是互联网快车惹的祸?
- 在做RTSP摄像机H5无插件直播中遇到的对接海康摄像机发送OPTIONS心跳时遇到的坑
- 软件测试工程师真实经历,一个软件测试工程师的加班经历(转)
- 简单的统计英文单词个数
- 如何真正免费运营推广APP应用
- 计算机设备购置清单,计算机硬件实验室设备采购清单