标签:python

Python FAQ

May 13, 2020 · Python
1. a is b 与 a == b有什么区别is 比较id(),==比较值>>> a = -5>>> b = -5>>> a is bTrue>>> a = -6>>> b = -6>>> a is bFalsePython为了优化效率,内置了小整数对象池和简单字符串对象池。小整数对象池包括[-5, 256]。这之间的小整数数值相同时在小整数对象池中属于同一对象即是 a is b 返回True。简单字符串也是如此,对于其他对象则不适用2. range() 与 xrange() 返回值有什么区别xrange() 返回生成器,range() 返回列表。Python3中已删除xrange(),range()返回生成器3. Python中的多线程在默认的CPython解释器中,多线程只能交替执行,并不能做到真正的并发执行。解释器执行代码时,有一个GIL(Global Interpreter Lock)锁,任何线程在执行前,必须先获得GIL锁,然后,发生IO或执行一定数量字节码时,解释

Django之异步发送HTML邮件

Oct. 12, 2017 · Django Python
尽管Python提供smtplib 模块用于发送电子邮件,但Django在其上也提供了几个封装。源码:django.core.mail这里我们使用其中的EmailMessage类来发送邮件,用模板来渲染HTML页面,并使用Python中的threading模块来完成多线程发送,这样在发邮件的时候并不会阻塞程序执行。1. 代码from django.core.mail import EmailMultiAlternativesfrom django.template import loaderimport threadingdef send_email(to): ''' 异步发送邮件 通过模板加载HTML正文 :param to: 发送到地址列表 ''' subject = '这里是邮件主题' content = loader.render_to_string( #渲染HTML模板 '../templates/email.html', #模板文件 {

Nginx+uWSGI+Mysql+Django+Virtualenv环境部署

Sept. 11, 2017 · Django Nginx Python Mysql
环境:ubuntupython31. 安装软件包sudo apt-get install mysql-server python3 python-dev python3-pip virtualenv uwsgi uwsgi-plugin-python32. 配置Virtualenv及Python环境首先,这个Virtualenv并不是必须的,他的作用就是创建一个“隔离”的Python运行环境。我想大家都碰到过在一台电脑上同时开发多个应用程序,如果应用A需要Python 2.7,而应用B需要Python 2.6怎么办?有时还会碰到不只是Python版本的不一致,比如Django等软件包版本。这种情况下,每个应用可能需要各自拥有一套“独立”的Python运行环境。2.1. 新建独立运行环境,命名为pyblog_envvirtualenv pyblog_env --python=python3.5 --no-site-packages--python指定Python版本--no-site-packages不复制系统已安装Python包2.2. 进入pyblog_env环境source pyb