`

用Python操作Mysql和中文问题

 
阅读更多
http://www.iteye.com/topic/573092
平时的主要编程语言是Java,开发时也主要用Mysql,经常为了测试,调试的目的需要操作数据库,比如备份,插入测试数据,修改测试数据,有些时候不能简单的用SQL就能完成任务,或都很好的完成任务,用Java写又有点太麻烦了,就想到了Python。Python语法简洁,不用编译,可以经较好的完成任务。今天看了下Python对Mysql的操作,做一下记录。

首先,安装需要的环境,Mysql和Python就不说了,必备的东西。
主要是安装的MySQLdb,可以去sf.net下载,具体地址是http://sourceforge.net/projects/mysql-python/
如果用Ubuntu,直接

ubuntu: sudo apt-get install python-mysqldb
Fedora19: sudo yum -y install MySQL-python


安装完成之后可以在Pyth
import MySQLdb #注意大小写!!  

如果不报错,就证明安装成功了,可能继续了

MySQLdb在Python中也就相当于JAVA中的MySQL的JDBC Driver,Python也有类似的数据接口规范Python DB API,MySQLdb就是Mysql的实现。操作也比较简单和其它平台或语言操作数据库一样,就是建立和数据库系统的连接,然后给数据库输入SQL,再从数据库获取结果。
先写一个最简单的,
创建一个数据库:
#!/usr/bin/env python  
#coding=utf-8  
###################################  
# @author migle  
# @date 2010-01-17  
##################################  
#MySQLdb 示例  
#  
##################################  
import MySQLdb  
  
#建立和数据库系统的连接  
conn = MySQLdb.connect(host='localhost', user='root',passwd='longforfreedom')  
  
#获取操作游标  
cursor = conn.cursor()  
#执行SQL,创建一个数据库.  
cursor.execute("""create database python """)  
  
#关闭连接,释放资源  
cursor.close(); 



创建数据库,创建表,插入数据,插入多条数据
#!/usr/bin/env python  
#coding=utf-8  
###################################  
# @author migle  
# @date 2010-01-17  
##################################  
#MySQLdb 示例  
#  
##################################  
import MySQLdb  
  
#建立和数据库系统的连接  
conn = MySQLdb.connect(host='localhost', user='root',passwd='longforfreedom')  
  
#获取操作游标  
cursor = conn.cursor()  
#执行SQL,创建一个数据库.  
cursor.execute("""create database if not exists python""")  
  
#选择数据库  
conn.select_db('python');  
#执行SQL,创建一个数据表.  
cursor.execute("""create table test(id int, info varchar(100)) """)  
  
value = [1,"inserted ?"];  
  
#插入一条记录  
cursor.execute("insert into test values(%s,%s)",value);  
  
values=[]  
  
  
#生成插入参数值  
for i in range(20):  
    values.append((i,'Hello mysqldb, I am recoder ' + str(i)))  
#插入多条记录  
  
cursor.executemany("""insert into test values(%s,%s) """,values);  
  
#关闭连接,释放资源  
cursor.close(); 



查询和插入的流程差不多,只是多了一个得到查询结果的步骤
#!/usr/bin/env python  
#coding=utf-8  
######################################  
#  
# @author migle  
# @date 2010-01-17  
#  
######################################  
#  
# MySQLdb 查询  
#  
#######################################  
  
import MySQLdb  
  
conn = MySQLdb.connect(host='localhost', user='root', passwd='longforfreedom',db='python')  
  
cursor = conn.cursor()  
  
count = cursor.execute('select * from test')  
  
print '总共有 %s 条记录',count  
  
#获取一条记录,每条记录做为一个元组返回  
print "只获取一条记录:"  
result = cursor.fetchone();  
print result  
#print 'ID: %s   info: %s' % (result[0],result[1])  
print 'ID: %s   info: %s' % result   
  
#获取5条记录,注意由于之前执行有了fetchone(),所以游标已经指到第二条记录了,也就是从第二条开始的所有记录  
print "只获取5条记录:"  
results = cursor.fetchmany(5)  
for r in results:  
    print r  
  
print "获取所有结果:"  
#重置游标位置,0,为偏移量,mode=absolute | relative,默认为relative,  
cursor.scroll(0,mode='absolute')  
#获取所有结果  
results = cursor.fetchall()  
for r in results:  
    print r  
conn.close() 



中文问题:
#!/usr/bin/python
# coding=gbk    # 要设定这个,否在有问题

# 说明:数据库是utf-8_bin的格式

import sys
import requests
import re
import MySQLdb
from BeautifulSoup import BeautifulSoup


url = "http://sh.house.163.com/13/0929/09/99U877FR00073SDJ.html"
req = requests.get(url)
#print req.content
bp = BeautifulSoup(req.content)

title = bp.findAll(id=re.compile("h1title"))
endText = bp.findAll(id=re.compile("endText"));


#  以utf-8的格式读出来
#charset="utf8" 这里是GBK也没问题
conn = MySQLdb.connect(host="192.168.0.196", user="root", passwd="", db="python", charset="utf8")
cursor = conn.cursor()

# 从页面的iso-8895-1编码成GBK
values = [title[0].text.encode("iso-8859-1").decode("GBK"), endText[0].text.encode("iso-8859-1").decode("GBK")];
#values = ["好人".decode("gbk").encode("utf-8"), "好人".decode("gbk").encode("utf-8")];
cursor.execute("insert into test(title,text) value(%s,%s)", values)

cursor.close()
conn.close()
分享到:
评论

相关推荐

    用Python将mysql数据导出成json的方法

    标题中的“用Python将mysql数据导出成json的方法”指的是使用Python编程语言,结合相关库,将MySQL数据库中的数据转换并保存为JSON格式的文件。这个过程通常在数据分析、数据迁移或者API接口开发等场景中非常有用。...

    Windows上Python连接MySQL数据库

    在Windows操作系统上,使用Python连接MySQL数据库是一项常见的任务,尤其对于数据处理和Web开发来说至关重要。Python提供了多种库来实现这一功能,其中最常用的是`pymysql`和`mysql-connector-python`。本篇文章将...

    Python3连接mysql

    在使用Python进行Web开发、数据分析以及其他涉及数据库操作的应用场景时,连接并操作MySQL数据库是一项非常基础且重要的技能。本文将详细介绍如何使用Python3连接MySQL数据库,并针对过程中可能遇到的一些常见问题...

    python操作mysql数据库.docx

    通过以上介绍,我们了解了如何使用Python操作MySQL数据库的基础知识。掌握了这些技能,你可以更高效地进行数据管理和应用开发工作。对于更复杂的操作,建议查阅官方文档和相关教程,以便深入学习和掌握。 #### 十、...

    python爬虫+mysql+网页数据分析

    使用Python的`mysql-connector-python`库可以方便地与MySQL进行交互,执行CRUD(创建、读取、更新、删除)操作。 【网页数据分析】 网页数据分析是对网页内容进行深度挖掘,提取有价值的信息。本项目可能涉及网页上...

    mysql-5.7操作手册(中文版).pdf

    MySQL 5.7 操作手册中文版 MySQL 5.7 是一个功能强大且广泛使用的关系数据库管理系统。该手册提供了 MySQL 5.7 的详细使用指南,涵盖了安装、配置、管理、优化等方面的内容。 安装和升级 MySQL MySQL 5.7 提供了...

    python操作mysql中文显示乱码的解决方法

    以下是一些解决Python操作MySQL时中文乱码问题的关键步骤和方法: 1. **Python文件编码设置**: 在Python源代码文件的开头,添加注释 `#encoding=utf-8` 来指定文件的编码格式为UTF-8。这样,Python解释器在读取...

    python中使用mysql数据连接

    打开数据库连接,正常显示中文标签,正常显示负号,使用 execute() 方法执行 SQL 查询

    pymysql python连接mysql数据库

    **PyMySQL:Python连接MySQL...综上所述,PyMySQL是Python连接MySQL数据库的重要工具,通过其API,我们可以轻松地执行SQL操作,管理和维护数据库。了解并熟练掌握PyMySQL的使用,对于Python开发者来说是至关重要的。

    python操作mysql代码总结

    以上就是Python操作MySQL的基本步骤和事务处理的关键点。在实际项目中,根据具体需求,你可能还需要处理更复杂的情况,如连接池管理、异常处理、批量操作等。理解这些基础操作将有助于你更有效地进行数据库管理。

    Mysql 5.1 中文手册

    9. **程序接口**:MySQL提供了多种编程语言的API,如ODBC、JDBC、PHP和Python,这部分会介绍如何在这些语言中连接和操作MySQL数据库。 10. **附录和参考**:包含各种系统变量、函数、错误代码和配置选项的详细列表...

    python学习源码和开发应用技术

    - **MySQLdb使用指南(Python数据库操作)**、**Python访问MySQL数据库**、**Python安装MySQLDb模块的种种问题及解决**:这三个资源共同构成了学习Python操作MySQL数据库的完整体系,不仅介绍了基本的操作方法,还解决...

    PythonCookbook3高清.pdf

    5. 数据库编程:该书介绍了 Python 中的数据库编程,包括 MySQL、PostgreSQL、 SQLite 等数据库的使用和操作。 6. Web 编程:该书详细介绍了 Python 中的 Web 编程,包括 Flask、Django 等 Web 框架的使用和操作。 ...

    Programming Python 中文第四版

    6. **数据库编程**:介绍了Python与各种数据库的交互,包括SQLite、MySQL、PostgreSQL等,以及如何使用ORM(Object-Relational Mapping)框架如SQLAlchemy简化数据库操作。 7. **GUI编程**:对于桌面应用开发,...

    python操作mysql数据库

    Python操作MySQL数据库是一种常见的任务,尤其在Web开发和数据分析中。Python提供了多种库来与MySQL交互,其中最常用的是PyMySQL,因为Python 3已经不支持原来的mysqldb模块。 首先,我们来看一下如何在MySQL中进行...

    MySQL中文参考手册.chm

    MySQL中文参考手册.chm 449kb <br/>0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5...

    Python经典教程《Automate The Boring Stuff with Python》中文版

    《Automate The Boring Stuff with Python》是一本非常受欢迎的Python入门书籍,旨在教会读者如何使用Python编程语言来自动化日常繁琐的任务。这本书以其易懂的语言和实用的示例深受初学者喜爱,尤其适合那些对编程...

    python 操作mysql数据中fetchone()和fetchall()方式

    本文将深入探讨在Python中使用pymysql库操作MySQL数据库时,`fetchone()`和`fetchall()`方法的使用。 `fetchone()`方法用于从查询结果集中获取一行数据,返回值是一个元组,如果查询结果已全部读取完毕,那么`...

    Python Mysql自动备份脚本.pdf

    虽然这里提到的是Windows 2003和Python 2.5.1以及MySQL 5.0.1的环境,但该脚本的基本结构可以适应更新的版本和系统。 在脚本中,作者使用了`#!/usr/bin/env python`作为shebang行,这使得脚本可以在任何安装了...

Global site tag (gtag.js) - Google Analytics