python對mysql的操作

2021-06-27 08:08:24 字數 2995 閱讀 3318

安裝好了

mysqldb並將其移動到site-packages裡面,我們在程式便可以呼叫了。

1.與資料庫建立連線

import mysqldb

try:

cxn = mysqldb.connect(host='localhost', user='root', passwd='root', db='python')

except:

print "could not connect to mysql server."

exit( 0 )

其中host裡面填寫資料庫主機名.預設是用本地主機.

user裡面填寫資料庫登陸名.預設是當前使用者.

passwd裡面填寫資料庫登陸的秘密.預設為空.

db裡面填寫要使用的資料庫名.沒有預設值. 

與資料庫連線後,使用cursor()方法獲取操作游標

cursor = db.cursor()

2.建立資料庫表

cur.execute('create table results(site varchar(8),suffix varchar(8))')
其中results是建立的表的名稱,site和suffix是表中存放的引數,這裡用於存放英文本串和.com字尾,varchar(8)是引數型別,

可以儲存可變長度的字串。其中8代表該資料型別所允許儲存的字串的最大長度,只要長度小於該最大值的字串都可以被儲存在該資料型別中.可選引數型別有char、int等等。這樣我們便建立了乙個名為results的表。 3.

資料庫插入操作

values = [x,suffix]

cur.execute("insert into results values(%s, %s)" ,values) #向資料庫傳入需要的值

cxn.commit() #向資料庫提交資料

這裡,我們將符合要求的**存放到results這個資料庫中,其中cxn.commit()為提交操作,少了這一步,資料庫中的引數值將永遠為null。我就是少寫了這一步導致結果一直為null,檢查半天才把問題找出來- -.這樣我們就把我們要的結果存放到了資料庫中.下面附上我程式執行的存放到資料庫中的結果圖:

由於字串太多,程式執行了半個多小時才篩選出將近1700條的結果- - ,於是我暫停了程式!

這是我程式的完整**:

#__author__ = 'author'

# coding:utf-8

import urllib

import urllib2

import requests

import re

import mysqldb

#用requests的方法獲取html

def gethtml(url,data):

html = requests.post(url,data)

return html

#獲取提交表單得到的value值

def get_value(html):

req = ''

valuelist = re.compile(req).findall(html)

for value in valuelist:

return value

#獲取所有5位字母的字串

def get_all_str():

a =

for i in range(97,123):

for k in range(97,123):

for y in range(97,123):

for x in range(97,123):

for m in range(97,123):

return a

#篩選所有可用的網域名稱

def do_screen(url):

a = get_all_str()

print '*** connecting to database'

try:

#建立與資料庫的連線

cxn = mysqldb.connect(host='localhost', user='root', passwd='root', db='python')

except:

print "could not connect to mysql server."

exit( 0 )

cur=cxn.cursor() # 使用cursor()方法獲取操作游標

print '*** creating results table'

cur.execute('create table results(site varchar(8),suffix varchar(8))') #建立乙個results資料庫表

for x in a:

suffix = '.com'

data =

html = gethtml(url,data)

value = get_value(html.content)

print x,value

if(value == 'no'): #value為no即為可用網域名稱

values = [x,suffix]

cur.execute("insert into results values(%s, %s)" ,values) #向資料庫傳入需要的值

cxn.commit() #向資料庫提交資料

print '可用網域名稱:'+x+'.com'

cxn.close() # 關閉資料庫連線

url = ''

do_screen(url)

python對mysql的操作二

游標實際上是一種能從包括多條資料記錄的結果集中每次提取一條記錄的機制 游標總是與一條sql 選擇語句相關聯因為游標由結果集 可以是零條 一條或由相關的選擇語句檢索出的多條記錄 和結果集中指向特定記錄的游標位置組成 import mysqldb def connect mysql db config ...

python 對mysql的基本操作

朋友面試,幫用python寫的資料庫基礎操作 import mysqldb conn mysqldb.connect host localhost port 3306 user root passwd mima123456 db test1 charset utf8 c conn.cursor 游標...

用Python對MySQL簡單操作

import pymysql 連線資料庫 conn pymysql.connect host localhost user root password helloguitar532123 charset utf8 獲得浮標 cursor conn.cursor 建立資料庫 sql create cr...