1. 程式人生 > >Django與scrapy結合,sqlite3.connect() windows資料庫路徑問題

Django與scrapy結合,sqlite3.connect() windows資料庫路徑問題

方法一:

絕對路徑

self.conn = sqlite3.connect('G:\python工程\mysite\db.sqlite3')

這是最懶省事的方法

方法二:

相對路徑

這種不行(linux下的方式):

self.conn = sqlite3.connect('../mysite/db.sqlite3')

或許這種:

self.conn = sqlite3.connect('..\mysite\db.sqlite3')

是的,它可以。

猜測:這說明,python的直譯器還是不夠強,因為很多情況下,windows處理路徑問題時預設  '\'  等價於  '/'

 

我是在做scrapy向Django中的sqlite資料庫寫資料時遇到的這個問題,找不到資料庫檔案

一開始我是這樣寫的,多了兩個  ..\  ,因為我覺得要以pipelines.py檔案所在目錄為當前目錄,其實是以工程目錄為當前目錄,後來想了一下,命令都是在工程目錄下執行的,當然它就是當前目錄了,因為最後執行操作的是系統程式程式是在工程目錄下執行的,當然它就是當前目錄

    def open_spider(self, spider):
        self.conn = sqlite3.connect('..\..\..\mysite\db.sqlite3')   # 連線到資料庫檔案
        self.cur = self.conn.cursor()       # 遊標

遇到相同問題的小夥伴可以參考一下,

不一定要使用scrapy_djangoitem這個框架,畢竟是別人寫好的東西