第十一节:python mysql交互、socket、多线程

python个人笔记,纯属方便查询。

------------------------------------python mysql交互--------------------------------------- 
#查询:
import MySQLdb
try:
        conn=MySQLdb.connect(host=‘10.86.10.21‘,user=‘root‘,passwd=‘mysql‘,db=‘python‘,port=3306)
        cur=conn.cursor()
        cur.execute(‘select * from test111‘)
        print cur.fetchall()    #取全部行
        print cur.fetchmany(5)  #取前5行
        cur.close()
        conn.close()
except MySQLdb.Error,e:
        print ‘MySQL Error Msg:‘,e
        
#建表:单条插入
import MySQLdb
try:
        conn=MySQLdb.connect(host=‘10.86.10.21‘,user=‘root‘,passwd=
‘mysql‘,port=3306)
        cur=conn.cursor()
        cur.execute(‘create database if not exists darren‘)
        conn.select_db(‘darren‘)
        cur.execute(‘create table test(id int(10),info varchar(255)
)‘)
        value = (‘1‘,‘hidarren‘)
        print value
        cur.execute(‘‘‘insert into test values(%s,%s)‘‘‘,value)
        conn.commit()
        cur.close()
        conn.close()
except MySQLdb.Error,e:
        print ‘MySQL Error Msg:‘,e
#建表,插入多条数据。
import MySQLdb
try:
        conn=MySQLdb.connect(host=‘10.86.10.21‘,user=‘root‘,passwd=
‘mysql‘,port=3306)
        cur=conn.cursor()
        cur.execute(‘create database if not exists darren‘)
        conn.select_db(‘darren‘)
        cur.execute(‘create table test(id int(10),info varchar(255)
)‘)
        value = (‘1‘,‘hidarren‘)
        values_list=[]
        for i in range(20):
        values_list.append((‘1,darren‘))
        cur.executemany (‘‘‘insert into test values(%s,%s)‘‘‘,value)
        conn.commit()
        cur.close()
        conn.close()
except MySQLdb.Error,e:
        print ‘MySQL Error Msg:‘,e
        
#############################################################
#############################################################
--------------------------------python socket-------------------------------------------
###服务端:
import socket
HOST=‘‘
PORT=50007
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(1)
conn,addr=s.accept()

print ‘connected by‘,addr
while 1:
    data=conn.recv(1024)
    if not data:break
    conn.sendall(data)
conn.close()
#end

###客户端:
import socket
host=‘‘
port=50007
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))

s.sendall(‘hello,world‘)
data=s.recv(1024)
s.close()
print ‘received‘,repr(data) 
#end
#注意:此处python脚本命名不能为socket.py,如果已经创建提示出错:AttributeError: ‘module‘ object has no attribute ‘AF_INET‘
则rm -rf socket.pyc即可解决。
-------------------------------------
#客户端另一种情况:
import socket
host = ‘10.86.10.19‘
port = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
while 1:
        user_input = raw_input(‘msg to send::‘).strip()
        s.sendall(user_input)
        data=s.recv(1024)
        #print ‘received:‘,repr(data) 
        print ‘received:‘,data
s.close()
#end 
--------------------------------------

服务端:a客户端连接服务端以后如果不断,b不可以连接,b连接以后a不能连接。
import socket
host = ‘0.0.0.0‘
port = 50007
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
while 1:
        conn,addr=s.accept()
        while 1:
                data=conn.recv(1024)
                if not data:break
                conn.sendall(data)
conn.close()
#end

###################python socket多线程##################
#服务端:
#!/usr/bin/env python
import SocketServer
class mysocketserver(SocketServer.BaseRequestHandler):
 def handle(self):
 print ‘got a new conn from‘,self.client_address
 while True:
 data = self.request.recv(1024)
 if not data:break
 print ‘recv:‘,data
 self.request.send(data.upper())        #upper为大写
if __name__==‘__main__‘:
h=‘0.0.0.0‘
p=9001
s=SocketServer.ThreadingTCPServer((h,p),mysocketserver)
s.serve_forever()
#end

#客户端:
import socket
host=‘10.86.10.17‘
port=50007
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
while True:
        user_input=raw_input("pelase input you want to:").strip()
        if len(user_input) == 0:continue
        s.sendall(user_input)
        data=s.recv(1024)
        print ‘received:‘,repr(data)             #repr为格式化打印
s.close()
 ##################python socket ssh####################
import commands 
commands.getoutput(‘ls‘)        #输入命令,返回的是结果。
commands.getstatusoutput(‘ls‘)    #输入命令返回结果加状态

import SocketServer
class mysocketserver(SocketServer.BaseRequestHandler):
 def handle(self):
 print ‘got a new conn from‘,self.client_address
 while True:
 data = self.request.recv(1024)
 if not data:break
 print ‘recv:‘,data
 cmd_result=commands.getstatusoutput(data)
 self.request.send(len(cmd_result))
 self.request.sendall(cmd_result[1])
if __name__==‘__main__‘:
h=‘0.0.0.0‘
p=9001
s=SocketServer.ThreadingTCPServer((h,p),mysocketserver)
s.serve_forever()
时间: 2024-08-06 20:07:26

第十一节:python mysql交互、socket、多线程的相关文章

第一节、Alex 讲解 python+mysql 交互;

Python Mysql 交互 A.Alex 的语法展示: import MySQLdb  try: conn=MySQL.connect(host='localhost',user='root',passwod='123qwe',db='test-DB',port='3306') cur =conn.cursor() cur.execute('select * from user_info') cur.close() conn.close() except MySQLdb.Errot,e: p

centos mysql 优化 第二十一节课

centos mysql  优化  第二十一节课 f

第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现我的搜索以及热门搜索

第三百七十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)用Django实现我的搜索以及热门 我的搜素简单实现原理我们可以用js来实现,首先用js获取到输入的搜索词设置一个数组里存放搜素词,判断搜索词在数组里是否存在如果存在删除原来的词,重新将新词放在数组最前面如果不存在直接将新词放在数组最前面即可,然后循环数组显示结果即可 热门搜索实现原理,当用户搜索一个词时,可以保存到数据库,然后记录搜索次数,利用redis缓存搜索次数最到的词,过一段时间更新

centos mysql 优化 第十一节课

centos mysql  优化  第十一节课 f

centos LAMP第三部分php,mysql配置 第二十一节课

centos   LAMP第三部分php,mysql配置   第二十一节课 上半节课 下半节课 f

第三百六十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—倒排索引

第三百六十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-倒排索引 倒排索引 倒排索引源于实际应用中需要根据属性的值来查找记录.这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址.由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index).带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file). 倒排索引原理 就是将一句话进行分词并记录分词所存在的文章,当用户搜索词时可以直接查找到当前词所存在的文

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—编写spiders爬虫文件循环抓取内容—

第三百四十一节,Python分布式爬虫打造搜索引擎Scrapy精讲-编写spiders爬虫文件循环抓取内容- 编写spiders爬虫文件循环抓取内容 Request()方法,将指定的url地址添加到下载器下载页面,两个必须参数, 参数: url='url' callback=页面处理函数 使用时需要yield Request() parse.urljoin()方法,是urllib库下的方法,是自动url拼接,如果第二个参数的url地址是相对路径会自动与第一个参数拼接 # -*- coding:

python学习-python与mysql交互

一.使用pymysql进行交互 安装::: pip install pymysql pymysql主要是使用原生sql与mysql进行交互,示例如下: import pymysql #创建连接 conn = pymysql.connect(host='192.168.0.26',port=3306,user='xll', passwd='xll123',db='mysql' ) #创建游标 cursor = conn.cursor() #执行sql,并返回受影响的行数 effect_row =

二十、Python与Mysql交互

先安装一个python与MySQL交互的包:MySQL-python $ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2.tar $ cd MySQL-python-1.2.2 $ python setup.py build $ python setup.py install ========================================================================