Python与MySQL首次交互
前两天在工作之余研究了一下Python,对基础有了大致了解,就想拿她很MqSQL交互一下。
一开始就遇到了问题,要import MySQLdb,search发现有人说安装mysql-python,于是就很困惑mysql-python是什么东西呢,下载了就是安装不上,参考的是如下文章:http://blog.csdn.net/wklken/article/details/7253245。于是很纠结,mysql-python就是python用的数据库,还是什么?
继续search,终于揭开心中的迷雾:http://gdgzzch.blog.163.com/blog/static/376404522013012115950320/
原来MySQLdb就是一个驱动,好了终于搞定了,开始初次接触,很是让人心动
#encoding=utf-8
#coding=utf-8
#test connection mysql database
#author wangchuanbo
#time 2013-09-26 #导入MySQLdb模块,注意大小写(如果是没有安装,ubuntu->sudo apt-install python-mysqldb)
import sys
import MySQLdb try:
# Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入
reload(sys)
#为了解决乱码问题
sys.setdefaultencoding('utf-8')
#建立和数据库的连接
conn = MySQLdb.connect(host='localhost',user='root',passwd='wcb280280',charset='utf8')
#获取操作游标
cur = conn.cursor()
#执行SQL
cur.execute('create database if not exists python character set utf8') #选择数据库
conn.select_db('python') #建表
sql_create_user = 'create table tbl_user(id int unsigned primary key auto_increment, username varchar(20) not null,sex char(2) not null) default charset=utf8'
cur.execute(sql_create_user)
#插入记录
sql_insert_user = "insert into tbl_user(username,sex) values('方平','女')"
cur.execute(sql_insert_user) #查询记录
sql_select_user = 'select username,sex from tbl_user'
cur.execute(sql_select_user)
result = cur.fetchone()
#获取第一条记录
print '第一条记录是:'
#为了解决乱码问题
result = str(result)
result = result.decode('utf-8')
print result #提交事物(开始死活插不进去,使劲插,各种纠结,也不报错,就是少了这句,有些版本的驱动可能不需要)
conn.commit()
#关闭连接,释放资源
cur.close()
conn.close()
except MySQLdb.Error,e:
print "Mysql Error %d: %s" % (e.args[0], e.args[1])
表结构都是utf8编码:
conn_mysql.py保存也是 utf8
结果是:
主要参考了两篇文章,再次表示感谢,不过在初次阅读的时候还有有些费解,比如创建数据库用了三个引号的字符串,conn.comment()没有,插入数据的时候使用了列表,可能不利于初学者。
本来打算遵循Python的大道之简的原则,写的让初学者一看便知,结果事总于愿违,遇到了和当初自学PHP是的头疼问题,想当初搞定了PHP的乱码问题,以为在也不怕乱码了,结果这里又卡住了,一开始是插入中文的时候有乱码,最后是读取的时候有乱码,于是代码中就增加了太多解决乱码的多余代码,建议初学者,一开始用英文。
最后整了很久,翻了很久Google这本书,还是没有搞定查询乱码的问题,不知何故,今天实在是没有精力了,改天找时间,捉住BUG,读者如若明白,大可指点一二,感激不尽。
参考的文章如下,很全:
http://www.cnblogs.com/rollenholt/archive/2012/05/29/2524327.html
http://blog.csdn.net/wanghai__/article/details/6718297
http://blog.csdn.net/foyuan/article/details/1711100
http://blog.csdn.net/liuyukuan/article/details/5187633
http://www.cnblogs.com/maseng/archive/2013/03/12/python-mysql.html
Python与MySQL首次交互的更多相关文章
- MySQL(10) - Python与MySQL的交互
1.MySQL驱动模块Connector的语法 1.1.下载驱动 进入官网下载对应版本驱动 1.2.创建连接 方式一: import mysql.connector con = mysql.conne ...
- Python和MySQL数据库交互PyMySQL
Python数据库操作 对于关系型数据库的访问,Python社区已经指定了一个标准,称为Python Database API SepcificationV2.0.MySQL.Qracle等特定数据库 ...
- 【呕心总结】python如何与mysql实现交互及常用sql语句
9 月初,我对 python 爬虫 燃起兴趣,但爬取到的数据多通道实时同步读写用文件并不方便,于是开始用起mysql.这篇笔记,我将整理近一个月的实战中最常用到的 mysql 语句,同时也将涉及到如何 ...
- Python和mysql的连接
python与mysql的连接: 说明:前提是已近安装了mysql以及可视化工具(本人装的是Navicat) 1.在cmd下下载Python的第三方数据库包:pip install pymysql: ...
- 前端和后端的数据交互(jquery ajax+python flask+mysql)
上web课的时候老师布置的一个实验,要求省市连动,基本要求如下: 1.用select选中一个省份. 2.省份数据传送到服务器,服务器从数据库中搜索对应城市信息. 3.将城市信息返回客户,客户用sele ...
- python中web应用与mysql数据库交互
7使用数据库 具体使用python的DB-API,这一章里介绍如何编写代码与MYSQL数据库技术交互,这里使用一个通用的数据库API,名为DB-API. 7.1基于数据库的web应用 之前我们把日志数 ...
- Python与Mysql交互
#转载请联系 在写内容之前,先放一张图,bling- 这张图算是比较详细的表达出了web开发都需要什么.用户访问网页,就是访问服务器的网页文件.这些网页文件由前端工程师编写的.服务器通常用nginx/ ...
- 二十、Python与Mysql交互
先安装一个python与MySQL交互的包:MySQL-python $ gunzip MySQL-python-1.2.2.tar.gz $ tar -xvf MySQL-python-1.2.2. ...
- MySQL之Python与Mysql交互
一:Python操作MySQL步骤 1:Python中操作MySQL的步骤 2.引入模块 在.py文件中引入pymysql模块 import pymysql pymysql是python的一个第三方与 ...
随机推荐
- Spring初学(一)
Spring核心机制:依赖注入 依赖注入简单的理解就是 由Spring负责对model进行设置,而非由controller直接设置. 通过依赖注入,javaEE各种组件可以解耦. 依赖注入(Depen ...
- [CSAPP笔记][第六章存储器层次结构]
第六章 存储器层次结构 在简单模型中,存储器系统是一个线性的字节数组,CPU能够在一个常数访问每个存储器位置. 虽然是一个行之有效的模型,但没有反应现代系统实际工作方式. 实际上,存储器系统(memo ...
- WebApi2官网学习记录---单元测试
如果没有对应的web api模板,首先使用nuget进行安装 例子1: ProductController 是以硬编码的方式使用StoreAppContext类的实例,可以使用依赖注入模式,在外部指定 ...
- Android-------------获取手机IP地址
##帮助类PhoneNetStateUtil package com.funs.PhoneIPAddress.utils; /** * 手机联网状态工具类 需要的权限 WIFI时:</ ...
- Java------------运算符优先级速记口诀
单目乘加位关系,逻辑三目后赋值. 单目:单目运算符+ –(负数) ++ -- 等 乘加(乘除加减):算数单目运算符* / % + - 位:位移单目运算符<< >> 关系:关系单 ...
- java socket报文通信(二)报文的封装
昨天我们谈了怎么建立socket通信的服务端和客户端,今天我们就来谈一谈怎么封装报文. 什么是报文这里我就不在阐述了,不清楚的朋友可以自己去查资料.我们今天要谈的报文主要友以下几个部分组成: 3位同步 ...
- tomcat免安装版注册为系统服务
环境: OS:windows7_64bit JDK:jdk1.6_64bit tomcat:apache-tomcat-7.0.61-windows-x64 1.修改tomcat/bin/servic ...
- struts 标签引用出错
几句句话概括 1.检查 web.xml 出现错误自己改 配置后filter jsp-config 2.检查 tld 目录下的东西 是否缺少 3. 将包复制到web的lib目录下后 之后 b ...
- 在html页头设置不缓存
方法一:在<head>标签里增加如下meta标签. <meta http-equiv="Content-Type" content="text/html ...
- 洛谷 P3383 【模板】线性筛素数
P3383 [模板]线性筛素数 题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范 ...