django直接操作MySQL,中文亂碼

2021-09-07 06:55:29 字數 2106 閱讀 1554

sql_insert = '''

insert into sinfors_hvvms values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)

''' conn=mysqldb.connect(

host='

10.160.25.31',

port = 3306,

user='

mgmtuser',

passwd='

n53(r3#2.a2)mg',

db ='

mgmt',

charset='utf8'

#插入資料時解決中文亂碼問題

)cu =conn.cursor()

datas=

i = 1

for csvf in

os.listdir(csvpath):

if os.path.splitext(csvf)[0].startswith('

queryresult-

') and os.path.splitext(csvf)[1] == '

.csv':

csvfile =os.path.join(csvpath,csvf)

#print csvfile

cf =open(csvfile)

cf.readline()

for l in

csv.reader(cf):

l.insert(0,i)

cf.close()

#print csvfile

os.remove(csvfile)

if len(datas) >0:

cu.execute(

'delete from sinfors_hvvms')

conn.commit()

for data in

datas:

#print sql_insert,data

cu.execute(sql_insert,data) #data是乙個tuple:

(171, '192.168.200.194', 'ops-linux', '', '8', '0.0', 'd:\\hyper-v\\op', 'off', 'none', 'none', '1', 'internet', 'none', 'disabled', '1601/1/1 8:00:00')

conn.commit()

cu.execute(

'select * from sinfors_hvvms')

cu.close()

print sql_insert,data返回值:

insert into sinfors_hvvms values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) (171, '192.168.200.194', 'ops-linux', '', '8', '0.0', 'd:\\hyper-v\\op', 'off', 'none', 'none', '1', 'internet', 'none', 'disa

bled', '1601/1/1 8:00:00')

自定義字段順序插入值,檢視表字段預設順序:

desc tablename;

sql_insert = '''insert into sinfors_hvvms(id,pscomputername,name,ipaddress,processorcount,memorysize,path,state,delaysec,description,generation,vmswitchname,vlanid,replicationstate,udate_auto)  values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'''

解決mysql中文亂碼問題:

1. python檔案設定編碼 utf-8 (檔案前面加上 #encoding=utf-8)

2. mysql資料庫charset=utf-8

3. python連線mysql是加上引數 charset=utf8

4. 設定python的預設編碼為 utf-8 (sys.setdefaultencoding(utf-8)

mysql直接對錶操作 MySQL對錶操作命令

1 資料庫建立 create database db name 資料庫刪除 drop database db name 刪除時可先判斷是否存在,寫成 drop database if exits db name 2 建表 建立資料表的語法 create table table name 欄位1 資料...

mysql直接對錶操作 MySQL對庫和表進行操作

一.庫的基本mysql語句 1.增加資料庫 create database db1 建立乙個新資料庫db1 2.對庫進行操作 資料夾 檢視所有資料庫 show databases 檢視某乙個資料庫 show create database db1 檢視當前所在的庫 select database 進...

ORACLE直接路徑操作

總結 直接路徑插入直接在高水位線以外分配空間,繞過了資料緩衝區,直接將資料插入進表所在資料檔案中。直接路徑插入不產生redo 資料庫處於noarchivelog模式下插入或者nologging屬性的 上插入 和undo log,依賴高水點實現回滾。資料庫日誌模式 直接路徑插入結束的時候oracle會...