python 데이터베이스 연결 작업 MySQL

레 퍼 런 스
:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001391435131816c6a377e100ec4d43b3fc9145f3bb8056000
http://www.cnblogs.com/fnng/p/3565912.html
모듈
  • my sql-connector-python:MySQL 공식 파 이 썬 구동 입 니 다
  • MySQL-python:MySQL C 가 구동 하 는 Python 드라이브 를 봉 인 했 습 니 다

  • 둘 다 넣 고 사용 할 때 어떤 것 을 사용 할 지 결정 할 수 있 습 니 다.
    $ pip install  mysql-connector-python
    pip install  MySQL-python

    yum 으로 설치 하거나(가방 이름 잊 어 버 렸 어 요.yum search my sql 로 찾 아 보 세 요)
    2.데이터베이스 의 표
    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()

    4.인 스 턴 스 조회(프로그램의 일부분 을 완성 하고 통계 보고서 가 보 낸 메 일 프로그램 을 완성 합 니 다)
    #!/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()

    5.주의: 
    1.데이터베이스 중국어 코드 삽입 데 이 터 를 연결 하 는 문자 집합 은 반드시 설정 해 야 합 니 다.
    charset='utf8'

    2 데이터베이스 에 있 는 필드 가 datetime 형식 인지 int 형식 인지 익숙 하지 않 습 니 다.삽입 할 때%s 문자열 형식 으로 전 달 됩 니 다.형식 은 우리 에 게 투명 합 니 다.모듈 은 자동 으로 형식 을 처리 합 니 다! 
    3 모듈 이 mac 에서 오류 가 발생 할 수 있 습 니 다 MySQLdb 
    오류 보고:
    Traceback (most recent call last):
      File "ping_info.py", line 12, in
        import MySQLdb
      File "/Library/Python/2.7/site-packages/MySQLdb/__init__.py", line 19, in
        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: image not found
    해결 방법,C 언어 개발 구동 이기 때문에 모든 my sql 클 라 이언 트 모듈 에 의존 합 니 다.
     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

    좋은 웹페이지 즐겨찾기