iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >python连接数据库操作MySQL
  • 340
分享到

python连接数据库操作MySQL

2024-04-02 19:04:59 340人浏览 泡泡鱼
摘要

参考:Http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001391435131816c6

参考

:Http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001391435131816c6a377e100ec4d43b3fc9145f3bb8056000


http://www.cnblogs.com/fnng/p/3565912.html



一 模块

可以把两个都装上,使用的时候再决定用哪个:

$ pip install  mysql-connector-python
pip install  MySQL-python

或者 使用yum安装(包名我忘记了 可以是使用yum search mysql去找)

yum install MySQL-python



测试是否按照好的驱动

#!/usr/bin/env python
#coding:utf-8
import sys
try:
    import MySQLdb
    print "MySQL python drivier is ok!"
except Exception, e:
    print e
    sys.exit(1)
finally:
    sys.exit(1)


二、数据库中的表

show create table net_data; 可以查看


CREATE TABLE `net_data` (
  `_id` int(11) NOT NULL AUTO_INCREMENT,
  `create_date` datetime NOT NULL,
  `province` varchar(64) NOT NULL,
  `city` varchar(64) NOT NULL,
  `net_type` enum('CTC','CNC','CMC','JK') NOT NULL,
  `med` float NOT NULL,
  `loss` float NOT NULL,
  PRIMARY KEY (`_id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;


三  先看插入的实例吧


作用,连接数据库插入一条数据


数据库插入一条数据

import MySQLdb
....
....
def insert_into_mysql(info):
    conn= MySQLdb.Connect(
            host='localhost',
            port = 3306,
            user='root',
            passwd='12qwaszx',
            db ='netmap',
            charset='utf8',
            )
    cur = conn.cursor()
    sqli = "insert into net_data (create_date,province,city,net_type,med,loss) values(%s,%s,%s,%s,%s,%s)"
    cur.execute(sqli,(datetime.now(),'上海','上海','CTC','23','0'))
    conn.commit()
    cur.close()
    conn.close()




同时插入多条数据

#info type is list 列表
def insert_into_mysql(info):
    conn= MySQLdb.Connect(
            host='localhost',
            port = 3306,
            user='root',
            passwd='12qwaszx',
            db ='netmap',
            charset='utf8',
            )
    cur = conn.cursor()
    sqli = "insert into net_data (create_date,province,city,net_type,med,loss) values(%s,%s,%s,%s,%s,%s)"
    cur.executemany(sqli,(info))
    conn.commit()
    cur.close()
    conn.close()




四、查询实例(完成程序的一部分,完成的是一个统计报表发送的邮件的程序)

#!/usr/bin/env python
#encoding=utf8
#by cuizhiliang at 2016-04-29
from datetime import datetime, timedelta
import time
from jinja2 import Template
from sendmail import SendHtmlEmail
import MySQLdb
import os,sys
reload(sys)
sys.setdefaultencoding("utf-8")
g= {
    'host': '127.0.0.1',
    'port': 3306,
    'user': 'zabbix',
    'passWord': 'zabbix',
    'db':'zabbix',
}
now= datetime.now()
yesterday = now - timedelta(1)
yest_clock = (datetime.now()  -timedelta(1)).strftime('%s')
data = {}
def select_mysql(cmd):
    conn= MySQLdb.Connect(
            host= g['host'],
            port= g['port'],
            user= g['user'],
            passwd= g['password'],
            db =g['db'],
            charset='utf8',
            )
    #print cmd
    cur = conn.cursor()
    cur.execute(cmd)
    res =cur.fetchall()
    return res
#zabbix 上用户列表
def get_user_info():
    cmd="select userid, alias,  name, type  from users;"
    user_list = []
    user_list= list(select_mysql(cmd))
    print user_list
    return user_list
if __name__ == "__main__":
    
    data["user"]= get_user_info()


五、注意: 

1 插入数据库中文乱码  连接数据的字符集 一定要设定

charset='utf8'


2 不惯数据库中的字段是datetime类型还是int类型,在插入的时候都传为%s 字符串类型,类型对我们是透明了,模块会自动处理类型! 


3 模块在Mac中可能会出错 MySQLdb 


报错:

Traceback (most recent call last):

  File "ping_info.py", line 12, in <module>

    import MySQLdb

  File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in <module>

    import _mysql

ImportError: dlopen(/Library/Python/2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib

  Referenced from: /Library/Python/2.7/site-packages/_mysql.so

  Reason: p_w_picpath not found



解决方法,因为是C语言开发驱动,所有依赖mysql客户端模块

 sudo find / -name "libmysqlclient.18.dylib"

/usr/local/mysql-5.6.24-osx10.8-x86_64/lib/libmysqlclient.18.dylib

sudo cp /usr/local/mysql-5.6.24-osx10.8-x86_64/lib/libmysqlclient.18.dylib /usr/lib



您可能感兴趣的文档:

--结束END--

本文标题: python连接数据库操作MySQL

本文链接: https://www.lsjlt.com/news/40630.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-14
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-14
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-14
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-14
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-14
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-14
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-14
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-14
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-14
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作