多线程的使用场景 上次讲了由于GIL锁的存在,Python的多线程是假的,用的还是CPU的单核。Python的多线程只是利用了CPU的上下文切换,上下分切换也是占用CPU的。那么什么时候用多行程?...Python的多线程,适合IO密集型的任务,不适合CPU密集型的任务。 IO操作不占用CPU,比如socket这种网络编程的情景。...上面起了10个子进程,加上主进程,一个11个python进程。 我是用pycharm执行的代码,主进程的ID是8036,主进程的父进程是pycharm7832。...然后,所有的子进程,都是通过8036这个python的父进程开启的。8036就是这些子进程的父进程。...asyncio模块在python3.4引入标准库,支持异步IO 五种模型的比较: ? 用的最多的是IO多路复用。虽然看似异步IO更好,反正用的不多。
查看应用列表: > scrapy list spider_lab 运行单独爬虫应用,这里加上了--nolog参数,避免打印日志的干扰: > scrapy crawl spider_lab --nolog 在python...里启动爬虫 每次都去命令行打一遍命令也很麻烦,也是可以直接写python代码,执行python来启动的。...SpiderLabSpider.name cmdline.execute(('scrapy crawl %s %s' % (name, log_level)).split()) 其实就是提供了在python...allowed_domains = ['chouti.cn'] start_urls = ['http://dig.chouti.com/'] # 这个网站会屏蔽User-Agent里包含python...custom_settings = {'ROBOTSTXT_OBEY': False, 'DEFAULT_REQUEST_HEADERS': {'User-Agent': 'python
说下版本问题,尽量还是用Python3。 三、Hello World。就是个仪式感,别的没啥 print("你好") 四、变量。虽然驼峰规则也行,但是python推荐用_下划线,那就用下划线把。
另外,基于面向对象的程序可以使它人更加容易理解你的代码逻辑,从而使团队开发变得更从容。...OOP开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。...经典类就不试了,要在python2里才会有深度查找的效果。在python3里还是广度查找。...定义类的语法: class A: # 经典类写法,python2里和下面的写法有区别。python3里不必显示声明,这么写也是新式类了。...就是要,通过父类调子类,python不直接支持,但是可以间接支持。
python manage.py makemigrations 之后用的,不过这里我们自己还一个表都还没创建呢。...user.has_perm('app.view_task') 下面是测试的验证,期间去admin里修改一下权限再看看: D:\>python manage.py shell Python 3.6.3 (...request.resolver_match.namespace) print(request.resolver_match.url_name, request.resolver_match.view_name) king_admin 开发...下面主要把其中的一些坑记录下来 通过表名获取app的name 用下面的方法进入django的python,然后在你的项目里测试,找到你要的东西。...(django) D:\PycharmProjects\LowCRM>python manage.py shell Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017,
经典类 和 新式类 class A 经典类写法,查找方式深度优先 class A(object) 新式类写法,查找方式广度优先 上面是python2的语法,python3里可能已经没有经典类了。...或许还有自定义列表的方法,上课说python3里没了,就没讲。 创建元类 元类是用来创建类的类。我们创建类是通过元类来创建的。通过了解元类创建类的过程,可以对类有更深的理解。...在python中一切皆对象,那么Foo这个对象我们从输出结果看,应该是由type创建的。...__metaclass__ 属性是python2中的讲法,在python3中已经变成了metaclass,已经不是一个属性了,但是作用没变。...作业 开发简单的FTP: 用户登录 上传/下载文件 不同用户家目录不同 查看当前目录下文件 充分使用面向对象知识
init(); } }) })(jQuery); 在前端增加format方法 这里要在Sting对象的原型里添加一个format()方法,让前端的字符串也可以像python
(Python最多递归999层,到了会报错) 递归的例子: def halve(n): "每次减半并转为×××,直到0为止" print(n) n = int(n/2)
下面就是各种Python内置以及第三方提供的异步IO请求模块。这些模块,使用简便,大大提高效率。 asyncio 模块 这个是内置模块 先看下模块是怎么调用的。...这里是python3.4版本的用法,到3.5版本有新的 async/await 关键字可以用。不过向下兼容,旧的装饰器的 asyncio/yield from 的用法还是可以使用的。...因为从 python3.5 开始,引入了 async/await 。...asyncio是Python 3.4版本引入的标准库,是用装饰器的方式来定义协程的(上面的例子就是)。...到了python3.5版本,引入了async关键字来定义协程,并且向下兼容,之前的装饰器的方法也能用。 再来看一下aiohttp模块。
反之就是反序列化 python自带的str()可以完成序列化,然后eval()可以反序列化,但是我们先把他们忘记。不知道适用范围是多大。 我们用json的规范来做序列化和反序列化。...不过python序列化保存之后再给python反序列化使用,就没有数据类型的问题,那么可以使用pickle。 python的pickle模块实现了python的所有数据序列和反序列化。... 这里bytes类型了,只有二进制类型才有可能把所有的数据类型都序列化 dica2 = pickle.loads(stra) # 反序列化 print(type(dica2),dica2) 软件目录开发规范...requirements.txt: 存放软件依赖的外部Python包列表。 README: 项目说明文件。...不同目录间进行模块调用 python里一个文件夹下如果有一个__init__.py的空文件,这就不是一个普通的文件夹了,这是一个包。
就先开放一下5672端口,如下 $ firewall-cmd --permanent --add-port=5672/tcp $ firewall-cmd --reload 安装第三方模块 最后我们还要在python
PExpression) ,这个是python中的语法,其他语言了有的有,但是可能有点小差别,比如没有这个P,比如不用尖括号换成引号 前面的就是普通捕获组的例子。...text" name="name" placeholder="NAME" /> 打开页面后可以按F12进入开发这模式查看页面中的...上面两条命令都是作用于全局的,如果要限定作用于只在某个app,可以在最后加上app的名称: python manage.py makemigrations cmbd python manage.py migrate...Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。...python manage.py makemigrations python manage.py migrate 修改数据长度、删除一列,这类情况没什么特别的问题。
192.168.1.101 1 2 Bob 31 192.168.1.102 1 3 Cara 26 192.168.1.103 2 部门表(Dept): id name name_en 1 运维 Operation 2 开发...manage.py makemigrations python manage.py migrate 然后去Dept表里把部门先创建好,就按照上面的表格的内容。...: Dept object (4)>]> <QuerySet [(1, '运维', 'Operation'), (2, '开发...显示客户列表(查) 如果上面还没有把表结构更新到数据库,现在就去更新一下 python manage.py makemigrations python manage.py migrate 现在只有空表,
conn.commit() # 必须提交,默认都是事务操作 cursor.close() # 关闭游标 conn.close() # 关闭连接 SQLAlchemy 模块 现在已经可以使用SQL语句通过python...ORM介绍 全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的使用习惯...快速开发,由此而来。 ORM使我们构造固化数据结构变得简单易行。 ORM的缺点: 无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。...在Python中,最有名的ORM框架是SQLAlchemy。该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。...> SELECT * FROM record JOIN student ON record.student_id = student.id; 对应的python代码: class Student(Base
可以打开浏览器的F12开发人员工具在网络里查看到: ?
模块 Python有他有非常丰富的标准库和第三方库。使用前要先用import命令导入,然后才能在之后的代码中调用。...sys 模块 import sys print(sys.path) # 打印环境变量 结果输出的是一串目录列表,是python运行的环境变量。Python导入的时候会依次在这些目录中查找。...$ python test.py 123 abc 会依次输出执行文件的目录,然后是执行时的所有参数(字符串),如下 ['test.py', '123', 'abc'] os 模块 import os a...python里用的是j,以前学校里学的时候用的是i。好吧,关于复数基本都忘记光了,貌似也想不到什么需要应用到的场景。 负数的平方根也忘记有什么用了。而且math模块也不支持复数。
ShangHai ex 2 上面存的值只能存活2秒,超过时间再去get,返回的就是(nil) 帮助命令很有用,有不清楚的,可以看下命令的语法和说明 > help [ 命令 ] redis 模块 使用python...github.com/andymccurdy/redis-py/ Redis 命令参考(中文翻译版):http://doc.redisfans.com/ 连接方式 先来连接redis,然后把上面命令行界面里的操作在python...python中可以在建立连接的时候声明连接哪个库。...r.publish('FM101.7', 'Hello 1') print(res) # 返回值是订阅者的数量 r.publish('SDS.IDX', 'Hello 2') r.publish('alex.python...6379) sub = r.pubsub() sub.subscribe('FM101.7', 'FM103.7') # 订阅给定的一个或多个频道 sub.psubscribe('SDS.*', '*.python
介绍 ---- UliPad是一个国人开发的python轻量级编辑器,导向和灵活的编程器。它如类浏览器,代码自动完成许多功能,如:HTML查看器,目录浏览器,向导等。...下载与安装 ---- 下载地址:https://pypi.python.org/pypi/UliPad 安装,傻瓜式,一路next即可 配置 ---- 安装好之后双击启动之后逐步进行下面的配置。...2、编辑>参数>python>设置python解释器>增加>选择你本地安装python的路径下的pythonw.exe,并把描述字段填上任意名字,保存即可,最终效果图如下: PS:我这里用的是python3...3、进入ulipad安装目录下的conf中,如果想配置python的模板可以修改template.python这个文件,比如我这里优化为了如下,这样你每次建立新的py文件时都可以显示了。...使用 ---- 点击新建文件图标下的python,就可以创建一个py文件了,然后输入代码内容,之后按F5即可运行,在下方的console中可以看到结果了,效果如下 ?
比如这时python就会使用gbk编码去读utf-8文件,运行后会报错或者读到乱码。 现在推荐我们的方法是全部文件都使用utf-8的编码格式。
for i in range(2,10) ) # 构造一个迭代器 print(next(a)) # 打印出迭代器中的下一项 print(next(a)) print(next(a)) object,Python
领取专属 10元无门槛券
手把手带您无忧上云