最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年03月25日 14:37:46   作者:CQ_LQJ  
這篇文章主要為大家詳細(xì)介紹了python Django批量導(dǎo)入數(shù)據(jù)的相關(guān)資料感興趣的小伙伴們可以參考一下

前言:

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

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

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

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

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

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

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

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

py腳本如下:

#coding:utf-8 

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "www.settings") 

'''
Django 版本大于等于1.7的時候,需要加上下面兩句
import django
django.setup()
否則會拋出錯誤 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
'''
import django
import datetime


if django.VERSION >= (1, 7):#自動判斷版本
  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(';') #按;對字符串進(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腳本源代碼主要來說說自己學(xué)習(xí)過程中遇見的問題

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

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

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

#!/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']
問題3:如果導(dǎo)入數(shù)據(jù)源超過10M,然后數(shù)據(jù)庫默認(rèn)最大10M,那么上面腳本運(yùn)行不會成功.以mysql為例,若導(dǎo)入數(shù)據(jù)大小超過數(shù)據(jù)設(shè)置,那么會報2006 go away錯誤,需要在mysql中的my.ini中的[mysqld]下加入下列語句:

max_allowed_packet=300M --最大允許包大小300M
wait_timeout=200000  --連接時間200000s
interactive_timeout = 200000 --斷開時間200000s

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

相關(guān)文章

  • Python Pygame實(shí)戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)

    Python Pygame實(shí)戰(zhàn)之憤怒的小鳥游戲?qū)崿F(xiàn)

    《憤怒的小鳥》其實(shí)活得還不錯,盡管我們一直在嘲笑它的IP帝國夢做得太大。但要知道,把休閑益智游戲的生意做到這個份上的,恐怕也就獨(dú)此一家了。本文將利用Pygame實(shí)現(xiàn)這一游戲,需要的可以參考一下
    2022-04-04
  • python爬蟲請求頁面urllib庫詳解

    python爬蟲請求頁面urllib庫詳解

    這篇文章主要介紹了python爬蟲請求頁面urllib庫詳解,python3將urllib和urllib2模塊整合并命名為urllib模塊,urllib模塊有多個子模塊,各有不同的功能,需要的朋友可以參考下
    2023-07-07
  • Python中reduce函數(shù)詳解

    Python中reduce函數(shù)詳解

    本文主要介紹了Python中reduce函數(shù)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • tensorflow ckpt模型和pb模型獲取節(jié)點(diǎn)名稱,及ckpt轉(zhuǎn)pb模型實(shí)例

    tensorflow ckpt模型和pb模型獲取節(jié)點(diǎn)名稱,及ckpt轉(zhuǎn)pb模型實(shí)例

    今天小編就為大家分享一篇tensorflow ckpt模型和pb模型獲取節(jié)點(diǎn)名稱,及ckpt轉(zhuǎn)pb模型實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python 爬取國內(nèi)小說網(wǎng)站

    python 爬取國內(nèi)小說網(wǎng)站

    國內(nèi)小說網(wǎng)站的結(jié)構(gòu),大概都如出一轍,改改地址,就差不多了,有此需求的朋友可以參考下本文的爬蟲寫法
    2021-06-06
  • 學(xué)會python操作excel永不加班系列

    學(xué)會python操作excel永不加班系列

    這篇文章主要介紹了python操作excel的詳解,,需要的朋友可以參考下,小編覺得這篇文章寫的還不錯,希望能夠給你帶來幫助
    2021-11-11
  • Python sorted排序方法如何實(shí)現(xiàn)

    Python sorted排序方法如何實(shí)現(xiàn)

    這篇文章主要介紹了Python sorted排序方法如何實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • python實(shí)現(xiàn)對excel進(jìn)行數(shù)據(jù)剔除操作實(shí)例

    python實(shí)現(xiàn)對excel進(jìn)行數(shù)據(jù)剔除操作實(shí)例

    python在數(shù)據(jù)分析這方便的介紹應(yīng)該不用多說了,下面這篇文章主要給大家介紹了關(guān)于利用python實(shí)現(xiàn)對excel進(jìn)行數(shù)據(jù)剔除操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作

    python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作

    這篇文章主要介紹了python3+selenium獲取頁面加載的所有靜態(tài)資源文件鏈接操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • matplotlib.pyplot畫圖 圖片的二進(jìn)制流的獲取方法

    matplotlib.pyplot畫圖 圖片的二進(jìn)制流的獲取方法

    今天小編就為大家分享一篇matplotlib.pyplot畫圖 圖片的二進(jìn)制流的獲取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

连南| 禹城市| 平安县| 宜章县| 民权县| 西藏| 叶城县| 朝阳区| 佛学| 静海县| 凤凰县| 米林县| 呼伦贝尔市| 宁晋县| 静海县| 望谟县| 洞口县| 虹口区| 鄂托克前旗| 花垣县| 麟游县| 长沙县| 英吉沙县| 万宁市| 杭锦后旗| 朔州市| 孝感市| 仪征市| 禹州市| 岳普湖县| 原阳县| 镇康县| 永康市| 秭归县| 台南市| 呼伦贝尔市| 万州区| 高台县| 兴隆县| 安泽县| 凤山县|