老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

【python學習】python連接數據庫實例

python連接MySQL、MongoDB、redis、memcache等數據庫的方法

創新互聯專注于洪江企業網站建設,響應式網站建設,商城開發。洪江網站建設公司,為洪江等地區提供建站服務。全流程定制網站,專業設計,全程項目跟蹤,創新互聯專業和態度為您提供的服務

一,python 操作 MySQL:詳情見:
【apt-get install python-mysqldb】

 代碼如下:

#!/bin/env python
# -*- encoding: utf-8 -*-
import MySQLdb
import os

#建立和數據庫系統的連接,格式
#conn   = MySQLdb.connect(host='localhost',user='root',passwd='123456',db='test',port=3306,charset='utf8')
#指定配置文件,確定目錄,或則寫絕對路徑
cwd = os.path.realpath(os.path.dirname(__file__))
db_conf = os.path.join(cwd, 'db.conf')
conn   = MySQLdb.connect(read_default_file=db_conf,host='localhost',db='test',port=3306,charset='utf8')
#要執行的sql語句
query  = 'select id  from t1'
#獲取操作游標
cursor = conn.cursor()
#執行SQL
cursor.execute(query)
#獲取一條記錄,每條記錄做為一個元組返回,返回3,游標指到第2條記錄。
result1 = cursor.fetchone()
for i in result1:
   print i
#返回影響的行數
   print cursor.rowcount
#獲取指定數量記錄,每條記錄做為一個元組返回,返回1,2,游標從第2條記錄開始,游標指到第4條記錄。
result2 = cursor.fetchmany(2)
for i in result2:
   for ii in i:
       print ii

#獲取所有記錄,每條記錄做為一個元組返回,返回3,4,7,6,游標從第4條記錄開始到最后。
result3 = cursor.fetchall()
for i in result3:
   for ii in i:
       print ii
#獲取所有記錄,每條記錄做為一個元組返回,返回3,4,7,6,游標從第1條記錄開始
#重置游標位置,0為偏移量,mode=absolute | relative,默認為relative
cursor.scroll(0,mode='absolute')
result3 = cursor.fetchall()
for i in result3:
   for ii in i:
       print ii
#以下2種方法都可以把數據插入數據庫:
#(one)
for i in range (10,20):
   query2 = 'insert into t1 values("%d",now())' %i
   cursor.execute(query2)
   #提交
   conn.rollback()
#(two)
rows = []
for i in range (10,20):
   rows.append(i)
query2 = 'insert into t1 values("%s",now())'
#executemany 2個參數,第2個參數是變量。
cursor.executemany(query2,rows)
#提交
conn.commit()
#選擇數據庫
query3 = 'select id from dba_hospital'
#重新選擇數據庫
conn.select_db('chushihua')
cursor.execute(query3)
result4 = cursor.fetchall()
for i in result4:
   for ii in i:
       print ii
#不定義query,直接執行:
cursor.execute("set session binlog_format='mixed'")
#關閉游標,釋放資源
cursor.close()
'''
+------+---------------------+
| id   | modifyT             |
+------+---------------------+
|    3 | 2010-01-01 00:00:00 |
|    1 | 2010-01-01 00:00:00 |
|    2 | 2010-01-01 00:00:00 |
|    3 | 2010-01-01 00:00:00 |
|    4 | 2013-06-04 17:04:54 |
|    7 | 2013-06-04 17:05:36 |
|    6 | 2013-06-04 17:05:17 |
+------+---------------------+
'''

注意:在腳本中,密碼寫在腳本里面很容易暴露,這樣可以用一個配置文件的方式來存密碼,如db.conf:

復制代碼 代碼如下:


[client]
user=root
password=123456

二,python 操作 MongoDB:

代碼如下:

#!/bin/env python
# -*- encoding: utf-8 -*-
import pymongo
import os

#建立和數據庫系統的連接,創建Connection時,指定host及port參數
conn   = pymongo.Connection(host='127.0.0.1',port=27017)
#admin 數據庫有帳號,連接-認證-切換庫
db_auth = conn.admin
db_auth.authenticate('sa','sa')
#連接數據庫
db = conn.abc
#連接表
collection = db.stu
#查看全部表名稱
db.collection_names()
#print db.collection_names()
#訪問表的數據,指定列
item = collection.find({},{"sname":1,"course":1,"_id":0})
for rows in item:
   print rows.values()
#訪問表的一行數據
print collection.find_one()
#得到所有的列
for rows in collection.find_one():
   print rows
#插入
collection.insert({"sno":100,"sname":"jl","course":{"D":80,"S":85}})
#或
u = dict(sno=102,sname='zjjj',course={"D":80,"S":85})
collection.insert(u)
#得到行數
print collection.find().count()
print collection.find({"sno":100})
#排序,按照某一列的值。pymongo.DESCENDING:倒序;pymongo.ASCENDING:升序。按照sno倒序
item = collection.find().sort('sno',pymongo.DESCENDING) 
for rows in item:
   print rows.values()
#多列排序
item = collection.find().sort([('sno',pymongo.DESCENDING),('A',pymongo.ASCENDING)])
#更新,第一個參數是條件,第二個參數是更新操作,$set,%inc,$push,$ne,$addToSet,$rename 等
collection.update({"sno":100},{"$set":{"sno":101}})
#更新多行和多列
collection.update({"sno":102},{"$set":{"sno":105,"sname":"SSSS"}},multi=True)
#刪除,第一個參數是條件,第二個參數是刪除操作。
collection.remove({"sno":101})
'''
sno:學號;sname:姓名;course:科目
db.stu.insert({"sno":1,"sname":"張三","course":{"A":95,"B":90,"C":65,"D":74,"E":100}})
db.stu.insert({"sno":2,"sname":"李四","course":{"A":90,"B":85,"X":75,"Y":64,"Z":95}})
db.stu.insert({"sno":3,"sname":"趙五","course":{"A":70,"B":56,"F":85,"G":84,"H":80}})
db.stu.insert({"sno":4,"sname":"zhoujy","course":{"A":64,"B":60,"C":95,"T":94,"Y":85}})
db.stu.insert({"sno":5,"sname":"abc","course":{"A":87,"B":70,"Z":56,"G":54,"H":75}})
db.stu.insert({"sno":6,"sname":"楊六","course":{"A":65,"U":80,"C":78,"R":75,"N":90}})
db.stu.insert({"sno":7,"sname":"陳二","course":{"A":95,"M":68,"N":84,"S":79,"K":89}})
db.stu.insert({"sno":8,"sname":"zhoujj","course":{"P":90,"B":77,"J":85,"K":68,"L":80}})
db.stu.insert({"sno":9,"sname":"ccc","course":{"Q":85,"B":86,"C":90,"V":87,"U":85}})
'''

計算Mongodb文檔中各集合的數目:

代碼如下:

import pymongo

conn   = pymongo.Connection(host='127.0.0.1',port=27017)
db = conn.abc    #abc文檔
for tb_name in db.collection_names():     #循環出各集合名
   Count = db[tb_name].count()            #計算各集合的數量
   if Count > 2:                                 #過濾條件
       print tb_name + ':' + str(Count)
'''
conn   = pymongo.Connection(host='127.0.0.1',port=27017)
db = conn.abc
for tb_name in db.collection_names():
   print tb_name + ':' 
   exec('print ' + 'db.'+tb_name+'.count()')      #變量當集合的處理方式
OR
conn   = pymongo.Connection(host='127.0.0.1',port=27017)
db = conn.abc
for tb_name in db.collection_names():
   mon_dic=db.command("collStats", tb_name)      #以字典形式返回
   print mon_dic.get('ns'),mon_dic.get('count')
'''

三,python 操作 Redis:

代碼如下:

#!/bin/env python
# -*- encoding: utf-8 -*-

import redis
f = open('aa.txt')
while True:
   line = f.readline().strip().split(' # ')
   if line == ['']:
       break
   UserName,Pwd,Email = line
#    print name.strip(),pwd.strip(),email.strip()
   rc = redis.StrictRedis(host='127.0.0.1',port=6379,db=15)
   rc.hset('Name:' + UserName,'Email',Email)
   rc.hset('Name:' + UserName,'Password',Pwd)
f.close()
alluser = rc.keys('*')
#print alluser
print "===================================讀出存進去的數據==================================="
for user in alluser:
   print ' # '.join((user.split(':')[1],rc.hget(user,'Password'),rc.hget(user,'Email')))

四,python 操作 memcache:

代碼如下:

import memcache
mc = memcache.Client(['127.0.0.1:11211'],debug=1)

代碼如下:

#!/usr/bin/env python
#coding=utf-8
import MySQLdb
import memcache
import sys
import time

def get_data(mysql_conn):
#    nn = raw_input("press string name:")
   mc = memcache.Client(['127.0.0.1:11211'],debug=1)
   t1 =time.time()
   value = mc.get('zhoujinyia') 
   if value == None:
       t1 = time.time()
       print t1
       query = "select company,email,sex,address from uc_user_offline where realName = 'zhoujinyia'"
       cursor= mysql_conn.cursor()
       cursor.execute(query)
       item = cursor.fetchone()
       t2 = time.time()
       print t2
       t = round(t2-t1)
       print "from mysql cost %s sec" %t 
       print item
       mc.set('zhoujinyia',item,60)
   else :
       t2 = time.time()
       t=round(t2-t1)
       print "from memcache cost %s sec" %t
       print value
if __name__ =='__main__':
   mysql_conn = MySQLdb.connect(host='127.0.0.1',user='root',passwd='123456',db='member',port=3306,charset='utf8')
   get_data(mysql_conn)


網站名稱:【python學習】python連接數據庫實例
文章鏈接:http://www.xueling.net.cn/article/jcpcoc.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 福利社一区 | 免费高清黄色 | 久久99精品久久久久久久夜夜爽 | 亚洲熟妇中文字幕五十中出 | 操操操夜夜操 | 国内精品久久久久影院中国 | 国产精品中文久久久久久久 | 亚洲午夜久久久精品一区二区三区 | 日韩欧美天堂 | 九色中文字幕 | 水蜜桃亚洲精品 | 熟妇人妻系列AV无码一区二区 | 宅男一区| 亚洲精品一区3d动漫在线 | 免费国精产品—品二品 | 免费国产成人av | 澳门一级毛片 | 国产大片av| 欧美激情精品久久久久久不卡 | AV不卡在线永久免费观看 | 色婷婷最新网址 | 中文精品一区二区 | 少妇人妻综合久久中文字幕 | 九七午夜剧场福利写真 | 永久91嫩草亚洲精品人人 | 日本A级毛片无卡免费视频 99热这里只有精品4 | 人妻体验按摩到忍不住哀求继续 | 亚洲中文字幕乱伦 | 巨茎中出肉欲人妻在线视频 | 国产高清无码黄片亚洲大尺度视频 | av高清一区二区三区 | 无码ol丝袜高跟秘书在线观看 | 欧美性猛交╳xx╳动态图 | 香蕉高清永久在线视频 | 亚洲国产精品隔壁老王 | 国产三级不卡在线观看视频 | 国产无人区码卡二卡三卡 | 免费观看爱爱视频 | 免费在线观看污网站 | 成人福利网址 | 久久精品成人一区二区三区 |