Django與scrapy結合,sqlite3.connect() windows資料庫路徑問題
阿新 • • 發佈:2018-12-20
方法一:
絕對路徑
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這個框架,畢竟是別人寫好的東西