摘要: Django contenttypes是一个非常有用的框架,主要用来创建模型间的通用关系(generic relation)。不过由于其非常抽象, 理解起来并不容易。当你创建一个django项目的时候,可以看到在默认的INSTALL_APPS已经包含了django.contrib.contentty 阅读全文
posted @ 2019-12-16 14:26 Mr_Riven 阅读(255) 评论(1) 推荐(0)
摘要: https://www.cnblogs.com/wupeiqi/articles/5246483.html 阅读全文
posted @ 2019-12-16 11:13 Mr_Riven 阅读(104) 评论(0) 推荐(0)
摘要: Django使用redis 方式一,使用Django-redis模块 #安装: pip3 install django-redis CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "red 阅读全文
posted @ 2019-12-16 11:11 Mr_Riven 阅读(151) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-12-16 10:11 Mr_Riven 阅读(140) 评论(0) 推荐(0)
摘要: v = dict.fromkeys(['k1','k2'],[]) v['k1'].append(666) print(v) v['k1'] = 777 print(v) 答: {'k1': [666], 'k2': [666]} {'k1': 777, 'k2': [666]} 阅读全文
posted @ 2019-12-16 09:37 Mr_Riven 阅读(145) 评论(0) 推荐(0)
摘要: Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步 阅读全文
posted @ 2019-12-16 09:36 Mr_Riven 阅读(240) 评论(0) 推荐(0)
摘要: Python的每个对象都分为可变和不可变可变:列表、字典 不可变:数字、字符串、元组 阅读全文
posted @ 2019-12-16 09:36 Mr_Riven 阅读(170) 评论(0) 推荐(0)
摘要: 浅拷贝:copy.copy 深拷贝:copy.deepcopy 浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层 主要应用在字符串,数字的深浅拷贝 阅读全文
posted @ 2019-12-16 09:35 Mr_Riven 阅读(374) 评论(0) 推荐(0)
摘要: is是对比地址(id),==是对比值 阅读全文
posted @ 2019-12-16 09:34 Mr_Riven 阅读(149) 评论(0) 推荐(0)
摘要: *args:可以理解为只有一列的表格,长度不固定。 **kwargs:可以理解为字典,长度也不固定。 1、函数调用里的*arg和**kwarg: (1) *arg:元组或列表“出现” **kwarg:字典“出没” (2)分割参数 2、函数定义时传的*arg /**kwarg: (1)接收参数 阅读全文
posted @ 2019-12-16 09:33 Mr_Riven 阅读(713) 评论(0) 推荐(0)
摘要: 1、空语句 do nothing 2、保证格式完整,保证语义完整 3、占位语句 阅读全文
posted @ 2019-12-16 09:32 Mr_Riven 阅读(367) 评论(0) 推荐(0)
摘要: lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。 应用在函数式编程中 应用在闭包中。 阅读全文
posted @ 2019-12-16 09:29 Mr_Riven 阅读(1240) 评论(0) 推荐(0)
摘要: # 字符串 words = "today is a wonderfulday" print(words.strip('today')) # 如果strip方法指定一个值的话,那么会去掉这两个值 print(words.count('a')) # 统计字符串出现的次数 print(words.index('is')) # 找下标 print(words.index('z')) # 找下标如果元素不找 阅读全文
posted @ 2019-12-16 09:28 Mr_Riven 阅读(970) 评论(0) 推荐(1)
摘要: 0 , [ ] , " , ( ) , { } 阅读全文
posted @ 2019-12-16 09:27 Mr_Riven 阅读(888) 评论(0) 推荐(0)
摘要: 二者使用时相同,但返回类型不同,xreadlines返回的是一个生成器,readlines返回的是list 阅读全文
posted @ 2019-12-16 09:26 Mr_Riven 阅读(671) 评论(0) 推荐(0)
摘要: range: 函数说明,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个列表。 xrange:函数说明,xrange 用法与 range 完全相同,所不同的是生成的不是一个list对象,而是一个生成器。 1、range和xr 阅读全文
posted @ 2019-12-16 09:25 Mr_Riven 阅读(642) 评论(0) 推荐(0)
摘要: int(符号整数):通常被称为是整数或整数,没有小数点的正或负整数; long(长整数):无限大小的整数,这样写整数和一个大写或小写的L。 阅读全文
posted @ 2019-12-16 09:23 Mr_Riven 阅读(1548) 评论(0) 推荐(0)
摘要: a = 1 b = 2 a, b = b, a 阅读全文
posted @ 2019-12-16 09:22 Mr_Riven 阅读(686) 评论(0) 推荐(0)
摘要: 1、print 在python2中,print被视为一个语句而不是一个函数,python3中,print()被视为一个函数 2、整数的除法 在python2中,键入的任何不带小数的数字,将被视为整数的编程类型。比如5/2=2,解决方法:5.0/2.0=2.5 在python3中,整数除法变得更直观 阅读全文
posted @ 2019-12-16 09:21 Mr_Riven 阅读(800) 评论(0) 推荐(0)
摘要: 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值 三元运算符的功能与'if....else'流程语句一致,它在一行中书写,代码非常精炼,执行效率更高 阅读全文
posted @ 2019-12-16 09:19 Mr_Riven 阅读(1189) 评论(0) 推荐(0)
摘要: I/O多路复用实际上就是用select, poll, epoll监听多个io对象,当io对象有变化(有数据)的时候就通知用户进程。好处就是单个进程可以处理多个socket。当然具体区别我们后面再讨论,现在先来看下I/O多路复用的流程: 1.阻塞I/O模型 老李去火车站买票,排队三天买到一张退票。 耗 阅读全文
posted @ 2019-12-16 09:14 Mr_Riven 阅读(883) 评论(0) 推荐(0)
摘要: 只有TCP有粘包现象,UDP永远不会粘包!粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如,对方第一次发送hello,第二次发送world, 在接收时,应该收两次,一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因 阅读全文
posted @ 2019-12-16 08:55 Mr_Riven 阅读(1600) 评论(0) 推荐(1)
摘要: Socket的英文原义是"孔"或"插座"。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄, 可以用来实现不同虚拟机或不同计算机之间的通信。 在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的 阅读全文
posted @ 2019-12-16 08:46 Mr_Riven 阅读(1916) 评论(0) 推荐(0)