外键:MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。1、字段指定了外键,则字段值必须在外键字段值中。2、作为外键的字段,值必须唯一,可以使用primary_key或unique约束键值唯一。3、指定外键的字段和被指定外键的字段,字段类型必须相同或相似。指定外键的方法:在Column中添加ForeignKey('表名.字段名')#指定外键:fromsqlalchemyimportcr
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据库API执行SQL并获取执行结果。SQLAlchemy无法修改表结构!!!安装:pip3installSQLAlchemy版本检查:importsqlalchemysqlalchemy.__version__不同数据库配置:根据配置
importtimeimportsqlite3fromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemyimportColumn,Integer,String,create_enginefromsqlalchemy.ormimportscoped_session,sessionmakerBase=declarative_ba
单线程,通过epoll实现高并发,端口6379linux下载地址:http://redis.io/downloadwindows下载地址:https://github.com/MSOpenTech/redis/releases支持类型:string:存字符串hash:存名字和值list:存列表set:存集合sortset:有序集合,带权值排序的集合,可以应用到学生对应的分数系统下命令参数作用red
threading模块默认没有获取线程返回值的方法。下面通过重写threading.Tread类来实现:from threading import Thread import random import time class MyThread(Thread): # 继承Thread
一、安装模块提示报错:Youareusingpipversion9.0.1,howeverversion9.0.3isavailable.Youshouldconsiderupgradingviathe'python-mpipinstall--upgradepip'command.#使用下面的命令更新pippython-mpipinstall--upgradepip二、parami
PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb。在线安装:>pipinstallPyMySQL手动安装,下载地址:https://github.com/PyMySQL/PyMySQL>cdPyMySQL>python3setup.pyinstall问题查询地址:https://pypi.python.org/pypi/setupto
系统:centos7x64mysql版本:ver8.42,distrib5.7.23mysql安装本文选择的是:使用yum安装下载地址:https://dev.mysql.com/downloads/repo/yum/右键×××标记,属性,获取下载地址:linux下输入:wgethttps://dev.mysql.com/get/mysql80-community-release-el7-1.no
一、rpm:安装rpm包,通常加-ivh.--prefix=/test安装到指定的test目录(如果有localtion属性,没有无法指定目录)rpm-ivh--prefix=/testxx.rpm查看安装的包rpm-qarpm-q包名删除已安装的包rpm-e包名二、yum安装:yum-yinstall包名*查找:yumsearch包名*查看已安装:yumlist包名*删除:yum-yremove
RabbitMQ介绍:父进程与子进程间,同一父继承可以用multiprocess的Manager模块来实现数据互访。作用:RabbitMQ是为了实现相互独立的两个进程数据互访。应用场景:不需要立即操作的数据。比如:发消息,发通知,发红包等。其它常见场景包括最终一致性、广播、错峰流控等等。同类产品有:ActiveMQ、RabbitMQ、Kafka、ZeroMQ等。RabbitMQ特点:RabbitM
uuid是128位的全局唯一标识符(univeraluniqueidentifier),通常用32位的一个字符串的形式来表现。有时也称guid(globaluniqueidentifier)。python中自带了uuid模块来进行uuid的生成和管理工作。(具体从哪个版本开始有的不清楚。。)python中的uuid模块基于信息如MAC地址、时间戳、命名空间、随机数、伪随机数来uuid。具体方法有如
select是全平台通用的IO多路复用模块。最大连接数:1024。poll和epoll没有最大连接数限制,但只能用在linux平台。selectors是再封装模块,推荐使用。下篇会讨论。select.select(rlist,wlist,xlist[,timeout])¶ThisisastraightforwardinterfacetotheUnixselect()systemcall.Thefi
协程:又称为微线程,英文名称Coroutine。作用:它拥有自己的寄存器上下文和栈,能保留上一次调用时的状态,可以随时暂停程序,随时切换回来。优点:•无需线程上下文切换的开销•无需原子操作锁定及同步的开销•方便切换控制流,简化编程模型•高并发+高扩展性+低成本:一个CPU支持上万的协程都不是问题。所以很适合用于高并发处理缺点:•无法利用多核资源:协程的本质是个单线程,它不能同时将单个CPU的多个核
configparser模块:是python标准库用来解析配置文件的模块。格式:section:使用[]标记section名:或=:使用:或=赋值[websv]ip:'192.168.1.10'port:443name='root'pw='root1990'同一个项可以多个值:ip:'192.168.1.11','192.168.1.12','192.168.1.13'方法、属性名参数作用示例Co
一、队列queue队列queue多应用在多线程场景,多线程访问共享变量。对于多线程而言,访问共享变量时,队列queue的线程安全的。因为queue使用了一个线程锁(pthread.Lock()),以及三个条件变量(pthread.condition()),来保证了线程安全。总结:队列提供了一个安全可靠的共享数据使用方案。队列内置控制安全的几个参数,非用户使用名称作用self.mutex互斥锁任何获
某些模块负责生产数据,这些数据由其他模块来负责处理(此处的模块可能是:函数、线程、进程等)。产生数据的模块称为生产者,而处理数据的模块称为消费者。在生产者与消费者之间的缓冲区称之为仓库。生产者负责往仓库运输商品,而消费者负责从仓库里取出商品,这就构成了生产者消费者模式。
threading模块:利用CPU空闲时间执行多任务。Python的多线程实际是遇到IO操作就CPU切换到其它任务。几个概念:1、GIL(GlobalInterpreterLock):全局解释器锁作用就是保证同一时刻CPU只执行一个线程。只有CPython有GIL锁。2、简单的threading使用常用类和方法名:参数作用示例threading.enumerate()用列表,列出所有活动的线程名和
还记得前一节做的socket和socketserver吗?写了很多实现了一个小功能,但是今天的paramiko真让人有种土枪换炮的感觉!paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。paramiko支持Linux,Solaris,BSD,MacOSX,Windows等平台通过SSH从一个平台连接到另外一个平台。利用该模块,可以方便
socketserver此模块简化了socket的编写。1、它有一个基类,定义了如何建立连接。BaseServer提供了服务类接口,BaseServer使用了select创建了多线程。BaseServer下面有四个类:TCPServer、UnixStreamServer、UDPserver、UnixDatagramServer。2、它还提供了请求处理类:定义了如何处理用户数据。定义了三个方法set
socket也叫套接字,是对各种协议的封装,实现收发数据。Python里socket工作过程:(图片来自网络)socket在Python中实际上是一个模块,实现发送和接收数据的功能。因为socket是一个类,所以只导入模块需要使用socket.socket()创建一个socket对象。创建一个socket格式:socket(family=AF_INET,type=SOCK_STREAM,proto
反射就是根据提供的字符串,匹配对象(类、模块等)里面的方法。达到动态调用的目的。主要有四个成员。getattr、hasattr、setattr、delattr 获取成员、检查成员、设置成员、删除成员'''一个简单的例子''' # 定义一个symbol类,有a,b,c三个方法。 class Symbol(object):
类的继承;类的多态;元类;类属性;类方法
功能:格式化输出日志五个级别DEBUG,INFO,WARING,ERROR,CRITICAL,默认打印WARING以上级别输入,可更改。默认实例是root,建议使用时不要使用默认实例importloggingimportsys使用的时候新建实例:#实例化logging,必须给定一个name,默认是root,不推荐。logger_instence=logging.getLogger("name")#
datetime介绍:datetime是Python处理日期和时间的标准库。它包含了五个类:datetime,date,time,timedelta,tzinfodatetime数据对象:使用strptime把字符串日期转变为此对象,可以使用datetime里的一些方法和属性,比如date(),time(),year,month,day,strftime(),replace()等。导入语句:fro
time模块:python中处理时间的基础模块,有时间戳,元组,自定义,三种时间表现形式。python中时间戳的值是以1970年1月1日0点开始计算的,单位是秒。时间戳:就是两个时间差的数值。时区:传说中在开发服务器/客户端程序时,时区不一致,会影响 程序的功能。(以后再讨论) time模块方法:方法名作用示例结果time()返回当前时间戳time.time()1516071879.06
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号