国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - python Django批量導(dǎo)入數(shù)據(jù)

python Django批量導(dǎo)入數(shù)據(jù)

2020-08-18 09:43CQ_LQJ Python

這篇文章主要為大家詳細(xì)介紹了python Django批量導(dǎo)入數(shù)據(jù)的相關(guān)資料感興趣的小伙伴們可以參考一下

前言:

這期間有研究了Django網(wǎng)頁(yè)制作過(guò)程中,如何將數(shù)據(jù)批量導(dǎo)入到數(shù)據(jù)庫(kù)中.

這個(gè)過(guò)程真的是慘不忍睹,犯了很多的低級(jí)錯(cuò)誤,這會(huì)在正文中說(shuō)到的.再者導(dǎo)入數(shù)據(jù)用的是py腳本,腳本內(nèi)容參考至自強(qiáng)學(xué)堂--中級(jí)教程--數(shù)據(jù)導(dǎo)入.

 注:本文主要介紹自己學(xué)習(xí)的經(jīng)驗(yàn)總結(jié),而非教程!

正文:首先說(shuō)明采用Django中bulk_create()函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)批量導(dǎo)入功能,為什么會(huì)選擇它呢?

1 bulk_create()是執(zhí)行一條SQL存入多條數(shù)據(jù),使得導(dǎo)入速度更快;

2 bulk_create()減少了SQL語(yǔ)句的數(shù)量;

       然后,我們準(zhǔn)備需要導(dǎo)入的數(shù)據(jù)源,數(shù)據(jù)源格式可以是xls,csv,txt等文本文檔;

       最后,編寫py腳本,運(yùn)行即可!

py腳本如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#coding:utf-8
 
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings")
 
'''
Django 版本大于等于1.7的時(shí)候,需要加上下面兩句
import django
django.setup()
否則會(huì)拋出錯(cuò)誤 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
'''
import django
import datetime
 
 
if django.VERSION >= (1, 7):#自動(dòng)判斷版本
  django.setup()
 
from keywork.models import LOrder
 
f = open('cs.csv')
WorkList = []
next(f) #將文件標(biāo)記移到下一行
for line in f:
  parts = line.replace('"','') #將字典中的"替換空
  parts = parts.split(';') #按;對(duì)字符串進(jìn)行切片
  WorkList.append(LOrder(serv_id=parts[0], serv_state_name=parts[1], acct_code=parts[2], acct_name=parts[3], acc_nbr=parts[4], user_name=parts[5],
              frod_addr=parts[6], mkt_chnl_name=parts[7],mkt_grid_name=parts[8], com_chnl_name=parts[9],com_grid_name=parts[10],
              product_name=parts[11],access_name=parts[12], completed_time=parts[13],remove_data=parts[14], service_offer_name=parts[15],
              org_name=parts[16], staff_name=parts[17],staff_code=parts[18], handle_time=parts[19],finish_time=parts[20],
              prod_offer_name=parts[21],eff_date=parts[22], exp_date=parts[23],main_flag=parts[24], party_name=parts[25]
              )
          )
f.close()
LOrder.objects.bulk_create(WorkList)

根據(jù)上面py腳本源代碼主要來(lái)說(shuō)說(shuō)自己學(xué)習(xí)過(guò)程中遇見的問(wèn)題

問(wèn)題1:需要導(dǎo)入的數(shù)據(jù)源中其第一行一般是字段名,從第二行開始才是數(shù)據(jù),所以在腳本利用next(f)將文本標(biāo)記移到第二行進(jìn)行操作,不然會(huì)出現(xiàn)問(wèn)題,比如字段名一般為英文,默認(rèn)是字符串格式化,腳本執(zhí)行就會(huì)遇見ValidationError:YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]這種models數(shù)據(jù)格式與導(dǎo)入數(shù)據(jù)格式不相符合的錯(cuò)誤!

問(wèn)題2:注意parts = parts.split(';') #按;對(duì)字符串進(jìn)行切片該語(yǔ)句,因?yàn)槲覀儗?dǎo)入數(shù)據(jù)每一行中的每列數(shù)據(jù)之間有間隔符,例如csv中逗號(hào),xls中空格等各種文本默認(rèn)間隔符號(hào),split函數(shù)使用實(shí)例如下:

以下實(shí)例展示了split()函數(shù)的使用方法: 

?
1
2
3
4
5
#!/usr/bin/python
 
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );

以上實(shí)例輸出結(jié)果如下: 

['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']

問(wèn)題3:如果導(dǎo)入數(shù)據(jù)源超過(guò)10M,然后數(shù)據(jù)庫(kù)默認(rèn)最大10M,那么上面腳本運(yùn)行不會(huì)成功.以mysql為例,若導(dǎo)入數(shù)據(jù)大小超過(guò)數(shù)據(jù)設(shè)置,那么會(huì)報(bào)2006 go away錯(cuò)誤,需要在mysql中的my.ini中的[mysqld]下加入下列語(yǔ)句:

?
1
2
3
max_allowed_packet=300M --最大允許包大小300M
wait_timeout=200000  --連接時(shí)間200000s
interactive_timeout = 200000 --斷開時(shí)間200000s

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)python批量導(dǎo)入數(shù)據(jù)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品国产一区二区三区不卡 | 免费视频一区二区 | 亚洲天堂中文字幕 | 精品一区二区免费视频视频 | 亚洲 中文 欧美 日韩 在线观看 | 亚洲欧美视频一区 | 亚洲一二三 | 九九九九精品九九九九 | 国产欧美精品一区二区三区 | 激情五月综合网 | 国产精品久久久久久久一区探花 | 成年人免费看 | 99亚洲| 午夜在线视频 | 日本在线播放 | 日韩色综合 | 欧美一区二区在线刺激视频 | 超碰成人在线免费 | 内地农村三片在线观看 | www久久久 | 中文字幕日韩在线视频 | 久久66| 青青草在线视频免费观看 | 欧美日韩在线一区二区三区 | 乱视频在线观看 | 91久久精品国产91久久性色tv | 1000部精品久久久久久久久 | 日韩亚洲| 黄色毛片儿 | 久久www免费人成看片高清 | 久久精品国产精品青草 | 国产精品久久久久久久久久久小说 | 欧美综合在线观看 | 在线视频亚洲 | 黄色一级电影在线观看 | 91精品国产福利在线观看 | 自拍视频网| 成人午夜电影网 | 黄色免费网站观看 | 人人99 | 欧美一区二区在线播放 |