python 데이터베이스 연결 작업 MySQL
: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 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 데이터베이스 연결 작업 MySQLmy sql-connector-python:MySQL 공식 파 이 썬 구동 입 니 다 MySQL-python:MySQL C 가 구동 하 는 Python 드라이브 를 봉 인 했 습 니 다 둘 다 넣 고 사용 할 때 어...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.