Python对各种数据库的各种操作满大街都是,不过,我还是喜欢我这种风格的,涉及到其它操作,不过重点还是对数据库的操作。
Python对各种数据库的各种操作满大街都是,,不过,我还是喜欢我这种风格的,涉及到其它操作,不过重点还是对数据库的操作。
Python操作MySQL
首先,我习惯将配置信息写到配置文件,这样修改时可以不用源代码,然后再写通用的函数供调用
新建一个配置文件,就命名为conf.ini,可以写各种配置信息,不过都指明节点(文件格式要求还是较严格的):
[app_info]
DATABASE=test
USER=app
PASSWORD=123456
HOST=172.17.1.1
PORT=3306
[mail]
host=smtp.linuxidc.com
mail_from=[email protected]
password=654321
send_to=[email protected];[email protected]
同目录下新建文件db.py,精悍的代码如下,不解释:
# -*-coding:utf-8 -*-
import MySQLdb #首先必须装这两个包
import ConfigParser
cf=ConfigParser.ConfigParser()
cf.read("conf.ini")
DATABASE=cf.get("app_info","DATABASE")
USER=cf.get("app_info","USER")
PASSWORD=cf.get("app_info","PASSWORD")
HOST=cf.get("app_info","HOST")
PORT=cf.get("app_info","PORT")
def mysql(sql):
try:
conn=MySQLdb.connect(host=HOST,user=USER,passwd=PASSWORD,db=DATABASE,port=PORT)
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()
conn.commit() #这个对于增删改是必须的,否则事务没提交执行不成功
cur.close()
conn.close()
return rows
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
上面是封装了操作数据库的方法,只需提供一个sql语句,CRUD均可操作。下面来YY一些数据来测试下增删改查的具体用法(easy的,我真是闲),接着上面的代码写:
def operation():
#查询
select = mysql('select * from test')
#插入
'''
插入这个地方有2点需要注意:
1.插入某几列如下指定,插入全部可以不指定列,但必须后面插入的值要按顺序
2.注意下面的type列两边有反斜点,这是因为type在我这个数据库里有个表也叫这个,或者可以把它叫关键字,不加反斜点插入会失败
3.这没好说的,呵呵,数字占位符用%d,字符串用%s,且字符串占位符必须用双引号括起来
'''
insert = mysql('insert into test (name,number,`type`) values("%s",%d,"%s")'%('jzhou',100,'VIP'))
#更新
mysql('update test set number=%d where'%(99,'jzhou'))
#删除
delete = mysql('delete from test where number = %d and `type`="%s"'%(100,'jzhou'))
return select #我返回这个是为了下面发送邮件用的,顺便增加个发送邮件的功能
我只是想把这个简单的操作搞的复杂点,增加个发送邮件的功能,也是接着上面的代码:
mailto_list=[]
send_info=cf.get("mail","send_to")
send_array=send_info.split(";")
for i in range(len(send_array)):
mailto_list.append(send_array[i])
mail_host=cf.get("mail","host")
mail_from=cf.get("mail","mail_from")
mail_password=cf.get("mail","password")
def send_mail(to_list,sub,content):
me=mail_from
msg=MIMEText(content,_subtype='html',_charset='utf-8')
msg['Subject']=sub
msg['From']=me
msg['To']=";".join(to_list)
try:
s=smtplib.SMTP()
s.connect(mail_host)
s.login(mail_from,mail_password)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
发送邮件的配置我也是写在conf.ini里的,在主函数里调用一下发送邮件来结束这个东西:
if __name__ == '__main__':
sub = u'不要问我为什么写这篇博客,闲,就是任性!'
content = operation()
if send_mail(mailto_list,sub,content):
print 'send success'
else:
print 'send failed'
其实我还想说一下python操作postgresql,跟mysql非常类似,下载包psycopg2,不太相同的就是postgresql中执行的sql语句都要加双引号,来感受一下:
# -*-coding:utf-8 -*-
import psycopg2
import ConfigParser
cf=ConfigParser.ConfigParser()
cf.read("conf.ini")
DATABASE=cf.get("cmdb_info","DATABASE")
USER=cf.get("cmdb_info","USER")
PASSWORD=cf.get("cmdb_info","PASSWORD")
HOST=cf.get("cmdb_info","HOST")
PORT=cf.get("cmdb_info","PORT")
def psql(sql):
try:
conn = psycopg2.connect(database=DATABASE, user=USER, password=PASSWORD, host=HOST, port=PORT)
cur = conn.cursor()
cur.execute(sql)
rows = cur.fetchall()
conn.commit()
cur.close()
conn.close()
return rows
except Exception,e:
print e
def psql_oper():
sql="select \"name\",\"type\" from \"test\" where \"name\" = 'jzhou'"
rows=psql(sql)
print rows
我总结了下,此博客虽简单,但包含三个重要的知识点,^_^
1、python读取ini文件(要import ConfigParser)
2、python操作mysql
3、python发送邮件
4、发表出来的都是经过实践检验的,即使很简单,这是一种态度!
--------------------------------------分割线 --------------------------------------
CentOS上源码安装Python3.4
《Python核心编程 第二版》.(Wesley J. Chun ).[高清PDF中文版]
《Python开发技术详解》.( 周伟,宗杰).[高清PDF扫描版+随书视频+代码]
Python脚本获取Linux系统信息
在Ubuntu下用Python搭建桌面算法交易研究环境
Python 语言的发展简史
Python 的详细介绍:请点这里
Python 的下载地址:请点这里
本文永久更新链接地址:

Artikel ini meneroka mengoptimumkan penggunaan memori MySQL di Docker. Ia membincangkan teknik pemantauan (statistik Docker, skema prestasi, alat luaran) dan strategi konfigurasi. Ini termasuk had memori docker, swapping, dan cgroups, bersama -sama

Artikel ini menangani ralat "tidak dapat membuka perpustakaan kongsi" MySQL. Isu ini berpunca daripada ketidakupayaan MySQL untuk mencari perpustakaan bersama yang diperlukan (.so/.dll fail). Penyelesaian melibatkan mengesahkan pemasangan perpustakaan melalui pakej sistem m

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel ini membandingkan memasang MySQL pada Linux secara langsung berbanding menggunakan bekas podman, dengan/tanpa phpmyadmin. Ia memperincikan langkah pemasangan untuk setiap kaedah, menekankan kelebihan Podman secara berasingan, mudah alih, dan kebolehulangan, tetapi juga

Artikel ini memberikan gambaran menyeluruh tentang SQLite, pangkalan data relasi tanpa server tanpa mandiri. Ia memperincikan kelebihan SQLITE (kesederhanaan, mudah alih, kemudahan penggunaan) dan kekurangan (batasan konkurensi, cabaran skalabiliti). C

Panduan ini menunjukkan pemasangan dan menguruskan pelbagai versi MySQL pada macOS menggunakan homebrew. Ia menekankan menggunakan homebrew untuk mengasingkan pemasangan, mencegah konflik. Pemasangan Butiran Artikel, Permulaan/Perhentian Perkhidmatan, dan PRA Terbaik

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa
