python全栈开发103_python全栈开发day103-python垃圾回收机制、mro和c3算法解析、跨域jsonp\CORS、Content-Type组件...
Python垃圾回收
-- 引用计数
-- Python为每个对象维护一个引用计数
-- 当引用计数为0的 代表这个对象为垃圾
-- 标记清除
-- 解决孤立的循环引用
-- 标记根节点和可达对象
-- 不可达视为垃圾
-- 分代回收
-- 解决标记清除的效率问题
-- 0代 1代 2代
-- 阈值 (700,10,10)
-- 当调用c的接口开辟内存和销毁内存的差值为700的时候出发0代回收
-- 0代触发10次 触发1代回收
-- 1代触发10次 触发2代回收
-- 每次回收结束 没有被回收的对象放入下一代
PythonMRO c3算法
-- 找到类的mro的继承顺序
-- 第一步 找到所有父类的mro
-- 第二步 用这些父类的mro 跟所有的父类进行归并
-- 取每个表表头 并且其他表去掉表头的部分不能含有我们要取的那个表头
-- 如果不满走就去取第二个表头
跨域
-- 浏览器的同源策略 阻止ajax请求 不阻止src请求
-- jsonp
-- 我们利用src发送请求
-- core
-- class MyCore(MiddlewareMixin):
def process_response(self, request, response):
response['Access-Control-Allow-Origin'] = "*"
if request.method == "OPTIONS":
# 复杂请求 预检
response['Access-Control-Allow-Headers'] = "Content-Type"
response['Access-Control-Allow-Methods'] = "POST, DELETE, PUT"
return response
ContentType组件
-- 应用 价格策略 常见问题 优惠券
-- 一张表跟多张表建立外键关系的
-- 用法
# 第一步 先生成ForeignKey字段 关联ContentType
content_type = models.ForeignKey(to=ContentType)
# 第二步 生成一个IntergerField 字段关联
object_id = models.PositiveIntegerField()
# 第三步 生成一个GenericForeignKey 把上面两个字段注册进去
content_object = GenericForeignKey("content_type", "object_id")
-- 创建和查询
# 通过contentType找到OldBoy中所有的信息
# content = ContentType.objects.filter(app_label="app01", model="oldboy").first()
# oldboy_model = content.model_class()
# ret = oldboy_model.objects.all()
# print(ret)
# 给Yuan局长加优惠券信息
yuan_obj = OldBoy.objects.filter(id=2).first()
Coupon.objects.create(name="苑局1000-750优惠券", content_object=yuan_obj)
# alex_obj = OldBoy.objects.filter(id=1).first()
# Coupon.objects.create(name="Alex打折优惠券", content_object=alex_obj)
# 查询优惠券id=1的关联的商品
# coupon_obj = Coupon.objects.filter(id=1).first()
# goods_obj = coupon_obj.content_object
# print(goods_obj)
# 查询苑昊的优惠券
yuan_obj = OldBoy.objects.filter(id=2).first()
coupon_list = yuan_obj.coupons.all()
print(coupon_list)
#######################################################################
ContentType实例提供的接口
ContentType.model_class()
获取当前ContentType类型所代表的模型类
ContentType.get_object_for_this_type()
使用当前ContentType类型所代表的模型类做一次get查询
ContentType管理器(manager)提供的接口
ContentType.objects.get_for_id()
通过id寻找ContentType类型,这个跟传统的get方法的区别就是它跟get_for_model共享一个缓存,因此更为推荐。
ContentType.objects.get_for_model()
通过model或者model的实例来寻找ContentType类型
---------------------
数据接口
-- 作业
-- 表结构
-- 课程类别
-- 课程表
-- 课程详细表
-- 推荐课程!!!
-- 关联课程表
-- 价格策略ContentType
-- 课程章节
-- 课程详细关联
-- 课时表
-- 跟章节关联
-- 常见问题表 ContentType
-- 讲师表
-- 跟课程详细关联
python全栈开发103_python全栈开发day103-python垃圾回收机制、mro和c3算法解析、跨域jsonp\CORS、Content-Type组件...相关推荐
- python释放变量内存_Python尚学堂高淇|1113引用的本质栈内存,堆内存,内存的示意图,标识符,变量的声明初始化,垃圾回收机制...
011-引用的本质-栈内存和堆内存-内存的示意图在Python当中,变量也成为:对象的引用,因为,变量的存储就是对象的地址变量通过地址引用了对象变量位于堆内存(压栈,出栈等细节,后续再介绍)对象位于: ...
- java知识点8——垃圾回收原理和算法、通用的分代垃圾回收机制、 JVM调优和Full GC、开发中容易造成内存泄露的操作
垃圾回收原理和算法 内存管理 Java的内存管理很大程度指的就是对象的管理,其中包括对象空间的分配和释放. 对象空间的分配:使用new关键字创建对象即可 对象空间的释放:将对象赋值null即可 垃圾回 ...
- java 堆_JAVA学习笔记 07——堆、栈和垃圾回收机制
程序执行的内存分析过程: 虚拟机栈(简称:栈)的特点如下: 1. 栈描述的是方法执行的内存模型.每个方法被调用都会创建一个栈帧(存储局部变量.操作数.方法出口等). 2. JVM为每个线程创建一个栈, ...
- axis2 webService开发 附深入理解 Java 垃圾回收机制
相关文章: axis web服务(axis2安装和eclipse.tomcat结合开发) axis2 webService开发 axis2 webService开发(打包aar文件) 使用Axis2开 ...
- 2020最全JVM垃圾回收机制面试题整理,阿里面试官最爱问的都在这里了(附答案)
前言 为什么需要垃圾回收 首先我们来聊聊为什么会需要垃圾回收,假设我们不进行垃圾回收会造成什么后果,我们举一个简单的例子 我们住在一个房子里面,我们每天都在里面生活,然后垃圾都丢在房子里面,又不打扫, ...
- java gc回收堆还是栈_浅析JAVA的垃圾回收机制(GC)
1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制. 注意:垃圾回 ...
- Vue整合nginx:(1)开发环境npm run dev下,通过nginx解决前后端分离造成的跨域问题
Vue整合nginx:(1)开发环境npm run dev下,通过nginx解决前后端分离造成的跨域问题 参考文章: (1)Vue整合nginx:(1)开发环境npm run dev下,通过nginx ...
- python垃圾回收离职_详细解说python垃圾回收机制
不同于C/C++,像Python这样的语言是不需要程序员写代码来管理内存的,它的GC(Garbage Collection)机制 实现了自动内存管理.GC做的事情就是解放程序员的双手,找出内存中不用的 ...
- Python 内存管理与垃圾回收机制
python python内存的泄露和溢出 前言 一.内存泄露和溢出 二.垃圾回收机制 1.引用计数机制 2.标记清除 3.分代回收 三.垃圾回收 总结 前言 虽然在做科研的路上并没有遇到内存方面的问 ...
最新文章
- mysql 联接结果集函数_Oracle 中函数如何返回结果集
- WebGL光栅化流水线
- K8s 1.14 发布了,Release Note 该怎么读?
- 链表反转2(Reverse Linked List II)
- jsf集成spring_Spring和JSF集成:动态导航
- 与 C++11 多线程相关的头文件
- 刚到的新公司 前任经理匆匆见了一面 飞鸽传书下载
- LeetCode 674. Longest Continuous Increasing Subsequence
- USTC高级软件工程课程学习心得
- 吐纳六字气法的形成与发展
- 除了孙宇晨 币圈还有这些人入不得、出不去
- 乔布斯斯坦福大学演讲英文原文
- 2021安徽安全员C证考试多选练习题库
- win10没有wifi列表,显示不出可用WiFi
- android hid 鼠标,使用BluetoothHidDevice将安卓手机同时模拟成鼠标和键盘
- 计算机组成原理 day01 - 第一章
- Linux route命令
- android 镂空字体下载,Android——自定义镂空掩饰控件
- P3386 【模板】二分图匹配(匈牙利模板)
- 变色龙哈希函数-区块链